C# Cookie

1  推荐使用 is 或 as 操作符而不是强制

2  编码风格:Tab ——改成两个 C# 文档注释的快捷键  (将配置表压缩,从压缩文件中查找xml配置表 这个是指Unity项目上面)
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主要用来对基类的方法和虚方法进行重写。
7 IComparable 接口:定义一种特定类型的通用比较方法,值类型或类通过实现此方法对其实例进行排序。
 需要自己实现接口里面的CompareTo方法
8 输出参数:跟引用参数有点类似:输出参数必须是从方法体内把数据传出到调用代码。
这里有点类似于 解决一个函数 只有一个 return ,只能返回一个参数的问题
 
posted @ 2013-11-16 16:39  青春不再出发  阅读(336)  评论(0编辑  收藏  举报