1 推荐使用 is 或 as 操作符而不是强制(as 主要是针对 对象引用类型 而不是 值类型)is 与as不同的是,is只是做类型检查并返回逻辑值,不做转换。 2 编码风格:Tab ——改成两个 C# 文档注释的快捷键 (将配置表压缩,从压缩文件中查找xml配置表 这个是指Unity项目上面) 3 尽量使用for循环,少用 foreach。http://stackoverflow.com/questions/10929586/what-is-the-difference-between-for-and-foreach 4 静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值 5 #pragma为编译器提供的特殊的指令 就是告诉编译器什么事情需要做怎么样的处理。 6 virtual override(用于覆写基类的虚方法进行重写) new(通过隐藏基类方法,使编译器调用正确的方法) 一般来讲,virtual都是在基类中声明的,override都是在子类中声明的。 virtual 默认情况下,方法是非虚拟的。不能重写非虚方法。使用override的目的是为了覆写父类的同名方法。 使用new操作符修饰成员可以重新定义继承自基类的非虚成员,在本文中,只具体介绍new作为修饰符的作用,在用作修饰符时,new关键字可以在派生类中隐藏基类的方法,也就说在使用派生类的方法是调用的方法是New关键字新定义出来的方法,而不是基类的方法。在不使用New关键字来隐藏基类方法也是可以的,编译器会出现一个警告,提示如果有意去隐藏基类的方法,请使用New关键字修饰。 这里有个注意事项就是New和Override这两个关键字是互斥的。不可以同时使用。 Virtual 关键字允许在派生类中重写这些对象,默认情况下,方法是非虚拟的,不可以重写非 虚方法,virtual关键字不可以与static、abstract、private、override一起使用。Virtual关键字又是和 override紧密不可分的,如果要实现Virtual方法就必须要使用override或new关键字(new和override产生的机理不同)。 总结:New关键字主要用来区别派生类和基类同名方法的选择问题,通过隐藏基类方法,达到使编译器调用正确的方法的目的。Override主要用来对基类的方法和虚方法进行重写。 可参考 http://www.cnblogs.com/grokyao/archive/2007/07/31/837814.html 7 IComparable 接口:定义一种特定类型的通用比较方法,值类型或类通过实现此方法对其实例进行排序。 需要自己实现接口里面的CompareTo方法 8 输出参数:跟引用参数有点类似:输出参数必须是从方法体内把数据传出到调用代码。 这里有点类似于 解决一个函数 只有一个 return ,只能返回一个参数的问题 9 List<T> Distinct : 已重载。 通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。 (由 Enumerable 定义。) 10 这里介绍结果字符串 转 相关类型变量的方法。 string ——> int : int playerId =int.Parse(attr.value); string ——> Vector3 : Converter FormatVector3(attr.Value, ref PlayerBirthPoint); string ——> Rect: Converter.FormatRect(attr.Value, ref m_MoveRect); 11 关于 String里面的LastIndexOf方法介绍 String.LastIndexOf 方法 报告指定的 Unicode 字符或 String 在此实例中的最后一个匹配项的索引位置。 12 C#中经常会遇到 属性这个概念,但是需要明白的是 属性 不是变量,不能作为 out参数传递