C#中的readonly 与 const 和 volatile

来自C#3.0完全参考手册  

              readonly关键字可以通过在类中把一个字段声明成readonly来创建一个只读字段。只可以在声明时使用初始化值为只读字段提供值,或者在构造函数中为其赋值。一旦设置只读字段的值,就不能在构造函数外部改动该值。 

 public class Test
    {
        public readonly int count = 10;
        public Test()
        {
            count = 100;
        }
        public int Count
        {
            get { return count; }
            //set { count = value; }  //error
        }

        public void setValue()
        {
            //  count = 10; //error
        }
    }

        const关键字用于声明不可以改变的字段或局部变量。这些变量在声明时必须提供初始值。因此,const变量在本质上就是一个常量。例如:

const int i=10;
创建了const变量i,该变量的值为10.尽管const字段类似于只读字段,但是两者并不相同。不可以在构造函数中设置const字段,但是可以设置只读字段。


volatile修饰符告诉编译器字段的值可以被两个或更多并发执行的线程改变。在这种情况下,某个线程可能不知道何时该字段已经被另一个字段改变。这一点非常重要,因为编译器将自动执行只在字段被单个执行线程访问时有效的某些优化。为了防止这些优化应用于共享的字段,可以将该字段声明为volatile,这就告诉编译器必须在每次访问该字段时包含它的值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值