类的加载、实例化、初始化的区别和执行顺序

问:

private static readonly是什么样的含义

 

答:

private   -   这个成员只能在本类内使用
static   -   这个成员不需要实例化即可使用
readonly   -   这个成员只能在“类初始化”时赋值

所谓的“类初始化”,是下面两者之一
1)   直接在定义后面写值,例如
        private   static   readonly   Hashtable   SharedHashtable   =   new   Hashtable();
2)   在“类构造函数”里写值,例如
        static   ClassName()   {
                  SharedHashtable   =   new   Hashtable();
        }

如果看   1),感觉上好像跟   const   有点联系,但是   const   是在编译的时候就计算结果的,这样的话,多数引用类型都无法赋值——new   操作符只能在运行时使用。我所知道的可以写到   const   字段的引用类型就只有字符串一种。static   readonly   的话,在第一次访问该类的时候才赋值,所以能用new,如上述例子

最后,const隐含static的语义,所以只需要写private   const即可

 

几个名词及关系

 

类的实例化

 

类的初始化

 

类的加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值