readonly & const

原创 2004年10月18日 09:43:00
C#引入了readonly修饰符来表示只读域,const来表示不变常量。顾名思义对只读域不能进行写操作,不变常量不能被修改,这两者到底有什么区别呢?只读域只能在初始化--声明初始化或构造器初始化--的过程中赋值,其他地方不能进行对只读域的赋值操作,否则编译器会报错。只读域可以是实例域也可以是静态域。只读域的类型可以是C#语言的任何类型。但const修饰的常量必须在声明的同时赋值,而且要求编译器能够在编译时期计算出这个确定的值。const修饰的常量为静态变量,不能够为对象所获取。const修饰的值的类型也有限制,它只能为下列类型之一(或能够转换为下列类型的):sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, bool, string, enum类型, 或引用类型。值得注意的是这里的引用类型,由于除去string类型外,所有的类型出去null值以外在编译时期都不能由编译器计算出他们的确切的值,所以我们能够声明为const的引用类型只能为string或值为null的其他引用类型。显然当我们声明一个null的常量时,我们已经失去了声明的意义--这也可以说是C#设计的尴尬之处!

http://www.microsoft.com/china/msdn/Archives/cornyfield/cornyfield7.asp

C#——const与readonly的区别

文章1: 我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。二者本质的区别在于,const的值是在编译期间确定的,因...
  • shineHoo
  • shineHoo
  • 2010年01月26日 09:52
  • 6968

C#中const与readonly的区别之浅见

之前在写C#代码时一直没有认真思考过const与readonly的区别,都是用的比较随意,只知道说这两个关键字一个是不变常量并且无法修改,一个是只读不能进行写操作。然后看过一些文章之后觉得之前理解的太...
  • andyqingliu
  • andyqingliu
  • 2017年01月11日 17:32
  • 3578

C#: const与readonly的用法和区别解析

总结一下const和readonly:const和readonly的值一旦初始化则都不再可以改写; const只能在声明时初始化;readonly既可以在声明时初始化也可以在构造器中初始化; cons...
  • xiaofengsheng
  • xiaofengsheng
  • 2009年10月12日 19:51
  • 4548

C#中的readonly跟const用法小结

总结一下常量和只读字段的区别: 一.值的区别: 常量(const):是已知的,不能修改的值。const都是静态的,不能使用static修饰。 只读字段(readonly):不能修改的,只读字段的...
  • u013930409
  • u013930409
  • 2015年05月24日 17:31
  • 2971

建议6: 区别readonly和const的使用方法

建议6: 区别readonly和const的使用方法 很多初学者分不清readonly和const的使用场合。在我看来,要使用const的理由只有一个,那就是效率。但是,在大部分应用情况下,“效率”...
  • houwc
  • houwc
  • 2016年08月29日 20:03
  • 391

const,static和readonly的区别

在第四节中,我介绍了常量的定义,其关键字就是const。在定义常量时,必须赋予其初始值。一旦赋予了初始值后,就不能修改其值。也就是所谓的常量值不能更改的含义。由于C#是一门纯粹的面向对象语言,并不存在...
  • azhexg
  • azhexg
  • 2010年10月12日 14:51
  • 2108

C#中的static、readonly与const的比较

[csharp] view plaincopy  C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适...
  • zhangsu_
  • zhangsu_
  • 2014年03月16日 15:23
  • 3704

C#:readonly和const用法小结

我们都知道,使用const关键字可以将字段或局部变量声明为常量,其不能被修改。 readonly关键字被用来声明只读字段,主要用于字段。 两者有一定的相似性,但是也有明显的差异性,所以本文将两者结合在...
  • tiana0
  • tiana0
  • 2013年09月08日 18:15
  • 2728

C# const,readonly,static区别

const: (1)可以定义const常量,具有不可变性。   例如:const int Max=100; Max++会产生错误;   (2)便于进行类型检查,使编译器对处理内容有...
  • u013553804
  • u013553804
  • 2016年05月02日 23:29
  • 1155

const;readonly;static readonly

const      1、静态   2、编译时赋值  3、值类型与stringreadonly  1、可访问器赋值   2、运行时赋值   3、所有类型static readonly  1、静态  2...
  • aptentity
  • aptentity
  • 2010年05月31日 10:19
  • 244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:readonly & const
举报原因:
原因补充:

(最多只允许输入30个字)