静态构造函数
*适用于初始化在编译时位置的静态数据的值,
*静态构造函数不能被重载
*静态构造函数不允许访问修饰符并不能接受任何参数
*无论创建了多少类型的变量,静态构造函数只执行一次
*运行库创建类实例或调用者首次访问静态成员之前,运行库会调用静态构造函数
*静态构造函数执行先于任何实例级别的构造函数
静态类
*不能用new来创建,并且只能包含用static关键字标识的成员变量
internal修饰符
只能在当前程序集中访问,
protected internal
readonly只读字段不能在赋初值之后改变
partial分部类型
分离代码
sealed防止继承
base控制基类的创建
public a(int a,int b,int c):base(a,b,c)
virtual override重写 base.调用父类方法
new强制覆盖父类的方法
(typea) instancea强制转换能编译过,但是运行时报错
as转换 失败为null
is
hashtable会在内部调用equals 和 gethashcode来获取正确的对象
接口显示重载
class a : b,c
void b.draw()
void c.draw()
任何支持GetEnumerator方法的类型都可以通过foreach结构进行运算
IEnumerable接口
通过yield构建迭代器
public Enumerator GetEnumerator(){
foreach(Car c in carArray){
yield return c
}
}
命名迭代器
public IEnumerable GetTheCars(bool returnReversed){
if(returnReversed){
for(int i = length,i >=0 ;i—){
yield return a[i]
}
}
}