var
用于定义不确定类型的变量,定义时必须赋值,赋值后该变量的数据类型即已确定
void
方法类型,表示该方法没有返回值
static 关键字
当修饰变量时表示该变量是静态变量,即为所有对象实例共有,调用方法为:类名.静态变量名
静态方法是所有实例共有的,一次静态方法中只能调用静态字段或者其他的静态方法或const定义的常量(const默认情况下定义的是一个static)
静态类中所有字段、方法均为静态,也不需要构造方法,使用的时候直接使用类名
int?
表示为可接受null值的int
return xxx ?? 0
表示如果xxx值为null 那么则返回0
ref和out关键字
ref和out相同 都是指明参数为引用类型,不同的是out在使用时可不用初始化变量
例:
int i;
i=0; //当使用ref时,这条语句是必须的,out 则可选
fc(i);
public void fc(ref int i)
{
.....xxx
用于定义不确定类型的变量,定义时必须赋值,赋值后该变量的数据类型即已确定
void
方法类型,表示该方法没有返回值
static 关键字
当修饰变量时表示该变量是静态变量,即为所有对象实例共有,调用方法为:类名.静态变量名
静态方法是所有实例共有的,一次静态方法中只能调用静态字段或者其他的静态方法或const定义的常量(const默认情况下定义的是一个static)
静态类中所有字段、方法均为静态,也不需要构造方法,使用的时候直接使用类名
int?
表示为可接受null值的int
return xxx ?? 0
表示如果xxx值为null 那么则返回0
ref和out关键字
ref和out相同 都是指明参数为引用类型,不同的是out在使用时可不用初始化变量
例:
int i;
i=0; //当使用ref时,这条语句是必须的,out 则可选
fc(i);
public void fc(ref int i)
{
.....xxx
}
装箱/拆箱
即值类型和引用类型间的转化,先有装箱才会有拆箱:
int i=42;
object o = i; //装箱
i=(int)o; //拆箱
is运算符
作用:类型判断
例:
int a;
if (a is int){...xxx}
as运算符
类型判断,和is不同的是 as先进性转换 然后再判断
myclass c=new myclass()\
object o=c
myclass temp=o as myclass;
if (temp != null)
{//转换成功
....xxxx
}
子类方法中使用NEW
子类中某方法和父类中某方法名相同时候可用NEW关键字标识出来,如:
父类中: public void Eat(){}
子类中:new public void Eat(){}
virtual和override
若要在子类中重写父类方法,则需要将父类中方法添加virtual修饰符
virtual修饰的方法为虚方法,暗示其子类最好有自己的实现
override修饰的方法为重写方法,表示覆盖了基类原有方法的实现
protected访问修饰符
被protected修饰的字段只能被子类访问到,其他类无法访问