static
静态字段,静态方法是属于类的,可以被类的所有实例使用。
静态字段有时候也被作为简单的缓存使用。
静态类是一种约束,约束类里边的方法和字段都必须是静态的,比如有些经常要用到的数学公式如Sin(),Cos(),可以将这些函数和变量封装在静态类中。
ref&out
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。并且用ref传递参数之前变量必须初始化。
out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。
尽管 ref 和 out 在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用 ref 参数,而另一个方法采用 out 参数,则无法重载这两个方法。
get&set
C# get set不提倡将域的保护级别设为 public而使用户在类外任意操作--那样太不OO,或者具体点说太不安全!对所有有必要在类外可见的域,C#推荐采用属性来表达。属性不表示存储位置,这是属性和域的根本性的区别。而且两者必须在同一个属性名下声明,而不可以将它们分离
readonly
需要使用静态构造方法初始化,但又不希望数值被改变的时候使用关键字readonly。
readonly成员只能在下面的两种情况下被赋值: 1. Static constructor 2. A variable initializer