.net 中const 与readonly的区别???

const和readonly都是只读的。但是const修饰的变量必须在声明时赋值。readonly修饰的变量可以在声明时或者构造函数里赋值。private const double pi=3.14;class A { private readonly int a; public A(int v) { a=v; } }
时间: 2024-10-01 20:20:55

.net 中const 与readonly的区别???的相关文章

C#中Const和Readonly的区别

const 的概念就是一个包含不能修改的值的变量.常数表达式是在编译时可被完全计算的表达式.因此不能从一个变量中提取的值来初始化常量.如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的. readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值.因为 readonly 是在计算时执行的,当然它可以用某些变量初始化.readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活

const和readonly的区别

const是静态常量,const是编译时常量:readonly是动态常量,是运行时常量,const较高效,readonly较灵活. 1.const默认是静态的,只能由类型来访问,不能与static同时使用:readonly默认是非静态的,由实例对象来访问,可以显示使用static定义为静态成员: 2.const只能应用在值类型和string类型上,其他引用类型常量只能定义为null,否则以new为const引用类型常量赋值,:readonly只读字段,可以使任意类型,但是对于引用类型字段来说,r

C++ 中 const和define的区别

来源网址:http://wujiangping.blog.163.com/blog/static/195182011201255115125205/ 请区别用#define命令定义的符号常量和用const定义的常变量.符号常量只是用一个符号代替一个字符串,在预编译时把所有符号常量替换所指定的字符串,它没有类型,在内存中并不存在以符号常量命名的存储单元.而常变量具有变量的特征,它具有类型,在内存中存在着以它命名的存储单元,可以用sizeof运算符测出其长度.与一般变量惟一的不同是指定变量的值不能改

c#中const与readonly区别

const 的概念就是一个包含不能修改的值的变量.常数表达式是在编译时可被完全计算的表达式.因此不能从一个变量中提取的值来初始化常量.如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的. readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值.因为 readonly 是在计算时执行的,当然它可以用某些变量初始化.readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活

(转)c#中const与readonly区别

const 的概念就是一个包含不能修改的值的变量.常数表达式是在编译时可被完全计算的表达式.因此不能从一个变量中提取的值来初始化常量.如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的. readonly 允许把一个字段设置成常量,但可以执行一些运算,可以确定它的初始值.因为 readonly 是在计算时执行的,当然它可以用某些变量初始化.readonly 是实例成员,所以不同的实例可以有不同的常量值,这使readonly更灵活

C#中 const static readonly

readonly:运行时常量,程序运行时赋值,赋值后无法更改,一般称为只读变量 const:编译时常量,在编译时将该常量引用替换为字面量,一般只能赋值为数字,字符串,枚举类型 static:静态变量.静态方法.静态类 静态变量: 特点: 1.通过static关键字修饰,是属于类,实例成员属于对象,在这个类第一次加载的时候,这个类下面的所有静态成员会被加载. 2.static与非static最大的区别就是static类型的变量及方法在调用的时候就在内存中分配了地址,且这个地址只有一份,故stati

const 与 readonly的区别

首先先解释下什么是静态常量以及什么是动态常量. 静态常量是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值. 动态常量的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化. const修饰的常量是静态常量;而readonly则是动态常量. 所以区别如下: 1)const修饰的常量在声明的时候必须初始化;readonly修饰的常量则可以延迟到构造函数初始化 2)const修饰的常

php中const与define的区别

1 版本差异: const 要求php的版本>5.3.0 define 可以兼容php4,php5 等版本 2 定义的位置区别: const关键字定义的常量是在编译时定义的,因此const关键字定义常量必须处于最顶端的作用区域 (意味着不能在函数内.循环内以及if语句之内用const来定义常量) 函数define()  定义的常量是在执行define()函数时定义的,因此可以在函数内.循环内.if语句内等函数能够被调用的任何地方使用define()函数定义常量 3 对值的表达式支持的差异: co

Dart中const与final的区别

用final修饰的变量,必须在定义时将其初始化,其值在初始化后不可改变:const用来定义常量. 它们的区别在于,const比final更加严格.final只是要求变量在初始化后值不变,但通过final,我们无法在编译时(运行之前)知道这个变量的值:而const所修饰的是编译时常量,我们在编译时就已经知道了它的值,显然,它的值也是不可改变的. int Func() {   // 代码 } final int m1 = 60; final int m2 = Func(); // 正确 const