常量和只读字段的区别:

来源:互联网 发布:营销咨询数据分析 编辑:程序博客网 时间:2024/05/22 15:35

总结一下常量和只读字段的区别:

.值的区别:

常量(const):是已知的,不能修改的值。const都是静态的,不能使用static修饰。

只读字段(readonly):不能修改的,只读字段的值不能在编译时确定,而是在运行时确定的。

readonly可以用static修饰,也可以不用。

 

.赋值方法区别:

常量(const):只能在声明时赋值,常量的值在编译时就已经确定,在程序中不能改变。

只读字段(readonly):只读字段可以在声明时或者在构造函数内赋值。只读字段可以是静态字段(一个类只有一个值),也可以是实例字段(每一个实例有自己的值)

 

值的区别:

例:只读字段

class MyClass

{

public readonly int r=10;

public MyClass(int a)

{ r=a; }

}

以下的常量赋值是不合理的

class MyClass

{

public const int r=10;

static void Main(string[] args)

{

MyClass c1=new MyClass();

int r1=c1.r ;

}

}

 

 

值的引用(是否静态):

只读字段

class MyClass

{

public readonly int r=10;

static void Main(string[] args)

{

MyClass c1=new MyClass();

int r1=c1.r ;

}

}

 

常量:

class MyClass

{

public const int r=10;

static void Main(string[] args)

{

int r1= MyClass.r ;

}

}

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击