在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
class Program { /// <summary> /// C# 里Main方法不需要public,而且不允许有两个是Main(string[] args)【包括String[] args】,因为它们的方法签名一样 /// 方法签名不包括方法修饰符和返回类型;(主要是因为返回值在调用时是可以忽略的,而参数则必须给出); /// </summary> /// <param name="args"></param> static void Main(string[] args) { /* 注意,对于重载方法,每个方法都是有一个Hash码的,比如Test()的是Test$0,Test(string param)是Test$1,Test(params string[] args)是Test$3 在编译阶段编译器是会按照一个策略来选择一个方法,并且写到二进制码的时候就会是一个具体的方法名而不是源码的方法名 所以下面的调用虽然同时符合Test()和Test(params string[] args),但是编译器根据方法匹配优先级匹配到了Test()这个方法, 所以编译成二进制文件时这部分代码就变成了Test$1();从而不会出现混乱的情况; */ Test(); // C# 里IList表示是支持RandomAccess的,即通过数组下标来访问,所以LinkedList没有实现这个接口; IList<int> list = new List<int>(5); list[1] = 4; foreach (var e in list) { // 这里应该是顺序比较的(应该是直接比较引用值而非equals) var idx = list.IndexOf(4); } ICollection<int> list2 = new LinkedList<int>(); } public static void Test() { // C# 这种第二行风格的好处是,代码就可以从下面一行写起,如果是{在方法签名那行,那么自己老是不习惯,总要在方法签名下面空一行再写; Console.WriteLine($"Hello, World.{3 - 4 / 2}");
|
请发表评论