C#夯实基础系列之const与readonly
一.const与readonly的争议
二.什么时候开始不可变?


public class MathHelper
{
public const float PI= 3.14159F;
}
static void Main(string[] args)
{
float pi= MathHelper.PI;
}


public class MathHelper
{
public readonly float PI;
}


public class MathHelper
{
public MathHelper()
{
this.PI = 3.15F;
this.PI = 3.14F;
}
public readonly float PI;
}
static void Main(string[] args)
{
MathHelper m = new MathHelper();
Console.WriteLine(m.PI);
}

public class MathHelper
{
public MathHelper(float pi)
{
this.PI = pi;
}
public readonly float PI;
}
static void Main(string[] args)
{
MathHelper m1 = new MathHelper(3.14F);
Console.WriteLine(m1.PI); MathHelper m2 = new MathHelper(3.15F);
Console.WriteLine(m2.PI); Console.Read();
}

public class MathHelper
{
public readonly float PI=3.15F;
}
public class MathHelper
{
public static readonly float PI=3.14F;
}
static void Main(string[] args)
{
Console.WriteLine(MathHelper.PI);
Console.Read();
}


三.什么是不可变的?
public class Alphabet
{
public static readonly Char[] Letters = new Char[] {'A','B','C','D','E','F' };
}
static void Main(string[] args)
{
Alphabet.Letters[] = 'a';
Alphabet.Letters[] = 'b';
Alphabet.Letters[] = 'c';
Alphabet.Letters[] = 'd';
Alphabet.Letters[] = 'e';
Alphabet.Letters[] = 'f';
Console.WriteLine(Alphabet.Letters.Length);
Console.Read();
}


四:总结
参考文档:
C#夯实基础系列之const与readonly的更多相关文章
- 【C++自我精讲】基础系列二 const
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变 ...
- 夯实基础系列四:Linux 知识总结
前言 前三节内容传送门: 夯实基础系列一:Java 基础总结 夯实基础系列二:网络知识总结 夯实基础系列三:数据库知识总结 现在很多公司项目部署都使用的是 Linux 服务器,互联网公司更是如此.对于 ...
- 【Unity|C#】基础篇(6)——const、readonly、static readonly
[学习资料] <C#图解教程>(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.c ...
- JavaScript夯实基础系列(四):原型
在JavaScript中有六种数据类型:number.string.boolean.null.undefined以及对象,ES6加入了一种新的数据类型symbol.其中对象称为引用类型,其他数据类 ...
- JavaScript夯实基础系列(三):this
在JavaScript中,函数的每次调用都会拥有一个执行上下文,通过this关键字指向该上下文.函数中的代码在函数定义时不会执行,只有在函数被调用时才执行.函数调用的方式有四种:作为函数调用.作为 ...
- JavaScript夯实基础系列(二):闭包
在JavaScript中函数是一等公民.所谓一等公民是指函数跟其他对象一样,很普通,可以进行把函数存在数组中.作为参数传递.赋值给变量等操作.当函数作为另一个函数的返回值在外部调用时,跟该函数在函 ...
- JavaScript夯实基础系列(一):词法作用域
作用域是一组规则,规定了引擎如何通过标识符名称来查询一个变量.作用域模型有两种:词法作用域和动态作用域.词法作用域是在编写时就已经确定的:通过阅读包含变量定义的数行源码就能知道变量的作用域.Jav ...
- 夯实基础系列一:Java 基础总结
前言 大学期间接触 Java 的时间也不短了,不论学习还是实习,都让我发觉基础的重要性.互联网发展太快了,各种框架各种技术更新迭代的速度非常快,可能你刚好掌握了一门技术的应用,它却已经走在淘汰的边缘了 ...
- 【PHP夯实基础系列】PHP日期,文件系统等知识点
1. PHP时间 1)strtotime() //日期转成时间戳 2) date()//时间戳变成日期 <?php date_default_timezone_set("PRC&quo ...
随机推荐
- C# SaveFileDialog的用法(转载)
#region 保存对话框private void ShowSaveFileDialog(){//string localFilePath, fileNameExt, newFileName, Fil ...
- css的继承性
为了减少css的代码量,很多时候,我们必须要非常重视css的继承性 1.首先,有些属性是不能继承的.这没有任何原因,只是因为它就是这么设置的.举个例子来说:border属性,大家都知道,border属 ...
- iOS地图 -- 区域监听的实现和小练习
区域监听用到的方法 [self.mgr startMonitoringForRegion:region]; --> 开启区域监听,没有返回值,在代理方法中得到信息并且处理信息 注:该方法只有用户 ...
- WebView·开发指南
WebView·开车指南 作者:凌俊琦链接:https://zhuanlan.zhihu.com/p/22247021来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. T ...
- 麦软社区Mindmanager现金抵用券使用流程
1.用户登录麦软社区:输入用户名密码 2.点击右上角发表话题,在麦软社区发表文章.教程.模板等等 3.填写要发布的内容 4.发布成功,等待审核 5.审核通过 6.审核通过的用户将会收到站内信,包含mi ...
- BZOJ 1086: [SCOI2005]王室联邦
1086: [SCOI2005]王室联邦 Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 1399 Solved: ...
- MySQL二进制安装
前提 version mysql-5.5 platform centos6.x 添加用户 useradd -M -s /sbin/nologin mysql 安装需要的包 yum -y install ...
- 设计模式 “续”
观察者模式 再次申明,本文学习自 程杰 兄的 "大话设计模式" 根据书中的内容和自己的体会而来. 观察者模式也叫 发布.订阅模式,在这个模式里,一个目标物件管理所有依赖它的观察者物 ...
- ztree.js的使用整理
/** 配置:知识点管理 */ var setting = { view: { showIcon: false, addDiyDom: addPrevDom, addHoverDom: addHove ...
- easyUi 框架中的JS文件传递参数的区别
1.情景一 //JS文件 ajax的请求url : parent.baseUrl+"user/customer/findOne/" + id, //后台JAVA代码接收参数 @Re ...