C# const与readonly 关键字的比较
来源:互联网 发布:西岐网络 编辑:程序博客网 时间:2024/05/22 06:26
最近使用项目的时候用到了常量,忽然发现这两个关键字不是很熟悉,特写此文,C#中const与readonly是C#里面的关键字。const与readonly定义的成员在初始化后都不能再改变
using System.Collections.Generic;using System.Linq;using System.Text;namespace ConstVSReadOnly{ public class Maths { public const double PI = 3.14; public readonly double G = 9.8; }class Program { static void Main(string[] args) { Maths math = new Maths(); // math.PI = 2; //编译出错,常量不能再改变值 // math.G = 2; //编译出错,常量不能再改变值 //Console.WriteLine("The PI="+math.PI); //编译出错 Console.WriteLine("The G="+math.G);<span style="white-space:pre"></span> Console.WriteLine("The PI="+Maths.PI); Console.ReadKey(); } }}
二者有什么区别呢?
1.定义为const的数据成员,隐式包含了static的含义,而定义为readonly的数据成为没有包含static的含义,比如可以在类级别直接调用const字段,而不能直接调用声明为readonly字段。上面的例子中,实例化的math不能调用PI,而直接使用类名却可以就是这个原因。
2.const成员在定义时,必须初始化,不能通过构造函数为其初始化。也即是说const成员的值必须的编译时就知道,而不能在运行时赋值。而readonly的成员,如果在定义时没有初始化,那么可以在构造函数中进行初始化。即readonly是运行时常量,而const是编译时常量。
3.const对于引用类型的常数,值只能是string和null。readonly可以是任何类型。
0 0
- C# const与readonly 关键字的比较
- C#中readonly关键字与const关键字的区别
- C#中readonly关键字与const关键字的区别
- C#中readonly关键字与const关键字的区别
- C#中的static、readonly与const的比较
- C#中的static、readonly与const的比较
- C#中的static、readonly与const的比较
- C#中的static、readonly与const的比较
- 比较C#中的readonly与const
- 比较C#中的readonly与const
- 比较C#中的readonly与const
- 比较C#中的readonly与const
- 比较C#中的readonly与const
- const与readonly关键字
- readonly 关键字与 const 关键字
- Java中的final关键字 与 C#中的const, readonly关键字
- c# readonly 与 const
- C#中的readonly与const 的区别
- 1410131848-hd-The 3n + 1 problem
- 仿qq登陆界面
- oracle expdp/impdp
- spring 中的 RowMapper
- tomcat架构分析(connector)
- C# const与readonly 关键字的比较
- ZOJ 1453 Surround the Trees(凸包入门:求凸包周长)
- 八大排序算法
- Cocos2d-x V3.0 Sprite 和 SpriteBatchNode
- 推荐:《嵌入式系统开发之道:菜鸟成长日志与项目经理的私房菜》
- 设计简单的计算器-浙大2006年机试,参考王道机试指南
- HDU1097
- Codeforces Round #272 (Div. 2)AK报告
- java之变量以及对象的存储位置区别