C#基础

1.readonly与const区别:
readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段为编译时常数,而 readonly 字段可用于运行时常数,如下例所示:注意:
public static readonly uint l1 = (uint)DateTime.Now.Ticks;

2.ref与out区别:
两者不同的区别:ref 要求变量必须在传递之前进行初始化,作为 out 参数传递的变量不必在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值.
但要注意:ref和out关键字在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用ref参数,而另一个方法采用out参数,则无法重载这两个方法。例如:
public void SampleMethod(out int i) {  }
public void SampleMethod(ref int i) {  }
二者的适用场合:
当希望方法返回多个值时,声明out方法很有用。
ref对于传递引用类型是很有用的。

3.abstract,virtual,override区别:
abstract抽象类不能被实例化,不能用sealed修饰抽象类;抽象方法必须在抽象类中声明;因为抽象方法不提供实际的实现,所以没有方法体,如public abstract void MyMethod();抽象方法必须在方法重写中得以实现。
virtual可以在任何类中声明此方法,且并不一定非要在方法重写中得以实现。
override实现abstract,virtual的方法;override声明不能更改virtual方法的可访问性,即override与virtual方法必须具有相同的访问级别修饰符。

posted @ 2009-02-27 12:27  瑞君  Views(119)  Comments(0)    收藏  举报