首页 > 学院 > 开发设计 > 正文

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

2019-11-17 03:15: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;

}

}

客户端访问形式

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表