七问C#关键字const和readonly】的更多相关文章

const和readonly经常被用来修饰类的字段,两者有何异同呢? const 1.声明const类型变量一定要赋初值吗? --一定要赋初值 public class Student { public const int age; } 生成的时候,会报如下错: 正确的应该这样写: public class Student { ; } 2.声明const类型变量可以用static修饰吗? --不可以 public class Student { ; } 生成的时候,会报如下错: 正确的应该这样写…
尽管你写了很多年的C#的代码,但是可能当别人问到你const与readonly的区别时候,还是会小小的愣一会吧~ 笔者也是在看欧立奇版的<.Net 程序员面试宝典>的时候,才发现自己长久以来竟然在弄不清出两者的情况下,混用了这么长的时间.的确,const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写.那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型:静态常量(compile-time constant…
====const==== const关键字来声明某个常量字段或常量局部变量.常量字段和常量局部变量不是变量而且不能修改.常量可以为数字.布尔值.字符串或null引用. 常数声明的类型指定声明引入的成员类型.常量局部变量或常量字段的初始值设定项必须是一个可以隐式转换为目标类型的常量表达式. 常数表达式是编译时可被完全计算的表达式.因此,对于引用类型的常数,可能的值只能是string和null. 不允许在常数声明中使用static修饰符. ====readonly==== readonly关键字是…
原文地址: http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html 尽管你写了很多年的C#的代码,但是可能当别人问到你const与readonly的区别时候,还是会小小的愣一会吧~ 笔者也是在看欧立奇版的<.Net 程序员面试宝典>的时候,才发现自己长久以来竟然在弄不清出两者的情况下,混用了这么长的时间.的确,const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写.那么,const与read…
引自:http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html 尽管你写了很多年的C#的代码,但是可能当别人问到你const与readonly的区别时候,还是会小小的愣一会吧~ 笔者也是在看欧立奇版的<.Net 程序员面试宝典>的时候,才发现自己长久以来竟然在弄不清出两者的情况下,混用了这么长的时间.的确,const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写.那么,const与readonl…
前言 不知道大家对const和readonly关键字两者的区别了解多少,如果你也不是很清楚的话,那就一起来探讨吧!探讨之前我们先来了解静态常量和动态常量. 静态常量 所谓静态常量就是在编译期间会对变量进行解析,再将常量的值替换成初始化的值. 动态常量 所谓动态常量就是编译期间会将变量标记只读常量,而不用常量的值代替,这样在声明时可以不初始化,可以延迟到构造函数初始化. const和readonly const修饰的常量是上述中的第一种,即静态常量,而readonly是上述中第二种即动态常量.他们…
前言 不知道大家对const和readonly这两个关键字的区别有什么了解,原来自己之前还真不清楚它们到底是怎么回事,那么如果你也不是很清楚的话,可以一起来探讨一下.在了解这两个关键字的时候我们先来了解一下静态常量和动态常量. 静态常量:是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值. 而动态常量的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化.现在再来说明const与…
C#中,const 与readonly是两个比较有用的关键字.const 与 readonly 定义的数据成员在初始化都不能再改变. 比如定义了 public class MathUtitlity    {         public const double PI = 3.14;         public readonly double E = 2.782; } class Program {         static void Main(string[] args) {      …
如果有一个值不太会变化,我们经常使用const和readonly,这2者有何不同呢?有时候,我们也会在readonly之前加上关键字static,这又意味着什么呢? const ● const默认是静态的,可以通过"类名.字段名"来访问.● const变量只能在声明的时候赋值,不能在构造函数中为const类型变量赋值.● 一旦程序集被编译,const变量会被写进程序集的IL代码中.如果想修改const变量值,必须在修改值后再重新生成程序集.● const是编译期变量 public cl…
不知道大家对const和readonly这两个关键字的区别有什么了解,原来自己之前还真不清楚它们到底是怎么回事,那么如果你也不是很清楚的话,可以一起来探讨一下.在了解这两个关键字的时候我们先来了解一下静态常量和动态常量. 静态常量:是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值. 而动态常量的值则是在运行的那一刻才获得的,编译器编译期间将其标示为只读常量,而不用常量的值代替,这样动态常量不必在声明的时候就初始化,而可以延迟到构造函数中初始化.现在再来说明const与rea…