区别readonly和const的使用方法

const和readonly的本质区别:

1.const是一个编译期常量,readonly是一个运行时常量。

2.const只能修饰基元类型、枚举类型或字符串类型,readonly则没有限制。

关于第一点,const为编译期变量,自带static,不能再给const增加一个static修饰符。效率高则因为在代码中引用const变量时直接引用const变量所对应的实际值。readonly变量是运行时变量,其赋值行为发生在运行时,并且在第一次运行被赋值后将不可以被改变:a.对于值类型变量,值本身不可以不可改变(相当于只读);b.对于引用类型变量,引用本身(相当于指针)不可改变 ,但可以多次对readonly进行赋值。

时间: 2024-11-25 09:39:03

区别readonly和const的使用方法的相关文章

readonly和const的区别

readonly与const的区别1.const常量在声明的同时必须赋值,readonly在声明时可以不赋值2.readonly只能在声明时或在构造方法中赋值(readonly的成员变量可以根据调用不同的构造方法赋不同的值)3.const前面不能添加static(因为Const本来就是一个静态常量),readonly前面可以添加static4.const在编译的时候赋值,readonly在运行的时候赋值5.const能在方法内声明,readonly不能在方法内声明 class ReadOnlyA

转载:readonly和const比较

原文地址:http://www.cnblogs.com/panjun-Donet/archive/2008/03/28/1127680.html 前天犯了个低级错误,是关于readonly的,总结了一下:    C#的readonly关键字只能在字段上面使用public readonly TcpClient client;不能在类,方法,属性上面使用readonly!!顺便看了一下readonly和const的区别: readonly和const都是用来标识常量的. const可用于修饰clas

Break 、Continue 和ReadOnly、Const和Ref和Out params

Break和Continue区别 之前对于Break和Continue:ReadOnly和Const:ref和out,params之类的基础东东学习过,但是一直没有仔细去研究到底是怎么一回事儿,最近在开发中用到了,仔细来做个总结: 1.Break和Continue //break是跳出整个循环体,不再执行本循环,continue是结束单次循环,继续下一次循环. //更多问题 联系QQ 931697811(夜雨梧桐) 1 #region Break测试 2 3 Console.WriteLine(

C#中的readonly跟const用法小结

总结一下常量和只读字段的区别: 由来: 笔者也是在看欧立奇版的<.Net 程序员面试宝典>的时候,才发现自己长久以来竟然在弄不清出两者的情况下,混用了这么长的时间.的确,const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写.那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型:静态常量(compile-time constants)和动态常量(runtime constants).这两者具有不同的特性

[C#]readonly vs const

C#中的readonly和const两个关键字都可以用来定义系统变量,那两者之间有什么区别呢? 1. const变量赋值后,就不可以对其进行修改.且在定义时就需要给它赋值,使用const修饰的变量是static的.可以使用YourClass.ConstantName的方式进行访问: 2. readonly变量可以在定义时赋值,也可以在构造方法中赋值或者修改定义时赋给的初始值: 另外还有一个细微的差别.看下面的场景,我在AssemblyA中定义了一个类如下: public class Readon

我所理解的readonly和const

最近要给学校软件小组新成员讲几次课,所以把很多以前懒得学习的和模糊不清的知识点,重新学习了一下. MSDN是这样解释的: readonly 关键字与 const 关键字不同. const 字段只能在该字段的声明中初始化. readonly 字段可以在声明或构造函数中初始化. 因此,根据所使用的构造函数,readonly 字段可能具有不同的值. 另外,const 字段为编译时常数,而 readonly 字段可用于运行时常数. 什么是编译时常数,什么是运行时常数呢.我想做下面的实验,关于readon

readonly 与 const

readonly MSDN定义:readonly 关键字是可以在字段上使用的修饰符.当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中. readonly修饰的字段只能在两个地方对其赋值,第一个是初始化字段的时候,第二个是构造函数中. 1 class Age 2 { 3 //第一个可赋值的地方 4 //private readonly int _year = 20; 5 readonly int _year; 6 7 Age(i

C++中const的使用方法

注意这一点 const对象默认为文件的局部变量 在全局作用域里定义非const变量时,它在整个程序中都可以访问,我们可以把一个非const变量定义在一个文件中,假设已经做了合适的声明,就可以在另外的文件中使用这个变量: 与其他变量不同,除非特别说明,在全局作用域声明的const变量是定义该对象的文件的局部变量.此变量只存在于那个文件中,不能被其他文件访问.通过指定const变量为extern,就可以在整个程序中访问const对象. 注意:非const变量默认为extern.要使const变量能够

const的使用方法----腾讯2016研发工程师笔试题(一)

请找出下面程序中有哪些错误: int main() {    int i=10;    int j=1;    const int *p1;//(1)    int const *p2=&i; //(2)    p2=&j;//(3)    int *const p3=&i;//(4)    *p3=20;//(5)    *p2=30;//(6)    p3=&j;//(7) return 0; } 正确答案: C 1,2,3,4,5,6,7 1,3,5,6 6,7 3,