C#中的readonly和const关键字
类别:编程学习 浏览量:1646
时间:2013-8-14 C#中的readonly和const关键字
C#中的readonly和const关键字
public class MathUtitlity
{
public const double PI = 3.14;
public readonly double E = 2.782;
}
class Program
{
static void Main(string[] args)
{
MathUtitlity math = new MathUtitlity();
math.E = 2.5;//编译错误,不能改变已经初始化的readonly字段
MathUtitlity.PI = 3.1456;//编译错误,不能改变已经初始化的const 字段
}
}
//定义Person,有一个属性:name。
public class ConstReadonly
{
public const string _const="_const";
public readonly Person _readonly;
public ConstReadonly()
{
_readonly = new Person();
}
}
public class Person
{
public string name;
public Person()
{
this.name = "Untitled";
}
public Person(string name)
{
this.name = name;
}
}
class Program
{
static void Main(string[] args)
{
ConstReadonly cr = new ConstReadonly();
Console.WriteLine(cr._readonly.name);
cr._readonly.name = "Changed";
Console.WriteLine(cr._readonly.name);
}
}
//输出结果为:
//Untitled
//Changed
1. const 字段只能在该字段的声明中初始化。 readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。
2. const 字段是编译时常数,而 readonly 字段可用于运行时常数。
3. const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。
4.const 对于引用类型的常数,可能的值只能是 string 和 null。readonly可以是任何类型
您可能感兴趣
- C#中ArrayList与Array的区别
- c#中list排序
- C# File类的操作
- C#中Serializable序列化
- C#排序算法的比较
- C#中Nullable<T>
- C#文件读写的方法
- C#压缩图片不失真
- C#中字符串转换成日期
- C#预处理器指令
- C#中BeginInvoke与EndInvoke
- C#中抽象类和接口的区别有哪些
- C#如何读取Excel
- C#递归的应用
- C#选择排序
- C# 获取磁盘空间大小
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
- 春节会放假几天(春节会放假吗)
- 小浴室,大民生 缙云3200多户困难群众洗上免费热水澡(小浴室大民生缙云3200多户困难群众洗上免费热水澡)
热门推荐
- sql字母通配符(详解SQL 通配符)
- docker启动nginx容器命令(Docker安装Nginx教程实现图例讲解)
- python模块使用方法(详解python的argpare和click模块小结)
- Html5中的<section>标签
- python编程ide工具(这6款Python IDE&代码编辑器,你都用过吗?)
- php网页浏览功能的具体实现(php实现网页上一页下一页翻页过程详解)
- innodb和myisam(Mysql InnoDB和MyISAM区别原理解析)
- laravel后台登录教程(Laravel 默认邮箱登录改成用户名登录的实现方法)
- Web开发中的几个建议
- mysql中行列转换(mysql 行列转换的示例代码)