博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中Const和Readonly的区别
阅读量:5164 次
发布时间:2019-06-13

本文共 1431 字,大约阅读时间需要 4 分钟。

const 的概念就是一个包含不能修改的值的变量。 常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。 如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。 readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值。 因为 readonly 是在计算时执行的,当然它可以用某些变量初始化。 readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活。 readonly 关键字与 const 关键字不同。 1. const 字段只能在该字段的声明中初始化。    readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。 2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。 3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。 4.const 对于引用类型的常数,可能的值只能是 string 和 null。    readonly可以是任何类型 总结 const只能在初期就使用常量初始化好。对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的~~

const是一个c语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外const在其他编程语言中也有出现,如c++、php5、c#.net、hc08 c

const 一般修饰 的变量为只读变量
const定义应该为在定义的时候初始化 以后不能改变他的值
例:

复制代码代码如下:
const int a=1;//只能在定义的时候初始化;
a=2;//出现错误 因为a为只读变量
const 修饰一些指针时候的用法
int a;
const int *p=&a;// *p是不允许改变的 但是p是允许改变的
int * const p1 //定义了一个只读的变量p1 ;p1不可以改变 *p1是可以改变的

 

常数声明可以声明多个常数,例如:

复制代码代码如下:
public const double x = 1.0, y = 2.0, z = 3.0;
不允许在常数声明中使用 static 修饰符。 常数可以参与常数表达式,如下所示:
复制代码代码如下:
public const int c1 = 5;
public const int c2 = c1 + 100;
注意:

 

readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数,如下面的代码行所示:

复制代码代码如下:
public static readonly uint l1 = (uint)datetime.now.ticks;

 

转载于:https://www.cnblogs.com/eric-qin/p/4305315.html

你可能感兴趣的文章
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>
一些php文件函数
查看>>
有关快速幂取模
查看>>
Linux运维必备工具
查看>>
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
Codeforces Round #277 (Div. 2)
查看>>
【更新】智能手机批量添加联系人
查看>>
NYOJ-128前缀式计算
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>