const和readonly的区别

6 篇文章 0 订阅
4 篇文章 6 订阅

const和readonly的区别
const是静态常量,const是编译时常量;readonly是动态常量,是运行时常量,const较高效,readonly较灵活。

1.const默认是静态的,只能由类型来访问,不能与static同时使用;readonly默认是非静态的,由实例对象来访问,可以显示使用static定义为静态成员;

2.const只能应用在值类型和string类型上,其他引用类型常量只能定义为null,否则以new为const引用类型常量赋值,;readonly只读字段,可以使任意类型,但是对于引用类型字段来说,readonly不能限制对该对象实例成员的读写控制;编译器会引发“只能用null对引用类型(字符串除外)的常量进行初始化“的错误提示;

3.const必须在字段声明时初始化;readonly可以再声明时,或者构造函数中进行初始化,不同的构造函数可以为readonly常量实现不同的初始值;

4.const可以定义字段和局部变量;而readonly则只能定义字段;static readonly的初始化,必须在定义时,或者静态无参构造函数中进行;

//声明字段

private const string name=“sssss”;

private readonly int age=24;

private static readonly string name=“ssssss”;

//声明局部变量

public void Test()

{

   const string name="ddddddd";

}

5.数组和结构体不能被声明为const常量,string类型可以被声明为常量,因为string类型的字符串恒定特性,使得string的值具有只读特性;

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值