Const(常量)与readonly(只读)的区别

王朝学院·作者佚名  2016-05-16
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Const(常量)与readonly(只读)的区别const与readonly定义的值都不能更改,但它们到底有哪些异同点呢?

Const

²Const是常量的意思,其定义的变量只能读取不能更改,且只能在定义时初始化,不能在构造函数与其它属性与方法中初始化

publicclassConstTest

{

///<summary>

///const定义的变量

///</summary>

publicconstintSUM = 100;

publicConstTest()

{

//错误!const定义的变量不能在构造函数中初始化

SUM = 100;

}

publicvoidmethod()

{

//错误!const定义的变量不能在方法中初始化

SUM = 100;

}

}

²Const定义的字段属于类访问,类似于静态变量,只能通过类名来访问

//只能通过类名访问

Console.WriteLine(ConstTest.SUM);

ConstTestt =newConstTest();

//错误!无法通过实例对象访问

Console.WriteLine(t.SUM);

²Const只能定义值类型与字串,若定义引用类型的变量,只能初始化为null

///<summary>

///const定义的变量

///</summary>

publicconstintSUM = 100;

publicconststringCHARACTER_STRING ="We are chinese!我们都是中国人!";

///<summary>

///const定义的引用类型只能初始化为null

///</summary>

publicconstObjectobj =null;

///<summary>

///错误!const定义的引用类型只能初始化为null

///</summary>

publicconstPersonperson =newPerson();

readonly

readonly是只读的意思,其定义的变量在运行期间也只能读取不能更改,但与const有以下不同

readonly分为实例只读变量与静态只读变量

²实例只读变量在定义时或者实例构造函数中初始化,通过对象访问

publicclassReadOnlyTest

{

///<summary>

///定义时初始化(实例只读变量)

///</summary>

publicreadonlyintsum = 0;

publicReadOnlyTest()

{

//实例只读变量在实例构造函数中初始化

sum = 100;

}

}

客户端访问形式

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航