常量和只读字段的区别:

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

.值的区别:

常量(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 ;

}

}

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值