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 ...
随机推荐
- 银行卡BIN: Bank Identification Number
What is a 'Bank Identification Number - BIN'A bank identification number (BIN) is the initial four t ...
- One EEG preprocessing pipeline - EEG-fMRI paradigm
The preprocessing pipeline of EEG data from EEG-fMRI paradigm differs from that of regular EEG data, ...
- 关于jQuery中实现放大镜效果
1.1.1 摘要 相信大家都见过或使用过放大镜效果,甚至实现过该效果,它一般应用于放大查看商品图片,一些电商网站(例如:凡客,京东商城,阿里巴巴等)都有类似的图片查看效果. 在接下来的博文中,我们将向 ...
- 在intellj idea下用sbt的坑
version : SBT 0.13.7 intellij 14 新建SBT项目以后无法编译,总是显示 Can not resolve symble stackoverflow 给出了暂时的解决办法. ...
- 谁让APP工程师产生了泡沫?
这两年移动互联网比较火,移动APP的开发人员也是比较紧缺. 面试了一个做APP的,能力很一般,态度也比较傲慢.最后感觉肯定不会用这个人了,但是出于验证自己想法的目的,还是很诚恳地以一个决定录取他的态度 ...
- Swift来的正是时候
早期对ObjectiveC这玩意不是很感冒,一直没有动手搞Apple平台下的开发,现在Swift来了,时机成熟,提升门槛后的IOS,才是量子本人想弄的.现在不用担心搞ObjectiveC的走在前面了. ...
- Android开发自学笔记(Android Studio) 目录
开发环境如下: 操作系统:Windows 10 Pro IDE:Android Studio 1.3.X 或更高版本 其它请参见文章说明. 1. 环境搭建 1.1 (番外)AndroidStudio常 ...
- C 语言学习 第一次作业总结
第一次的作业是冯老师布置的练习题,需要在pta平台上完成.我这边看不到结果,但是透过冯老师给出的截图,同学们都还是认真的去做的.同时,我这边也布置了一个持续 3 周的作业:熟悉 git 的使用.因为后 ...
- Spring+MyBatis框架中sql语句的书写,数据集的传递以及多表关联查询
在很多Java EE项目中,Spring+MyBatis框架经常被用到,项目搭建在这里不再赘述,现在要将的是如何在项目中书写,增删改查的语句,如何操作数据库,以及后台如何获取数据,如何进行关联查询,以 ...
- maven 生成可执行的jar文件
微服务的热潮,慢慢讲jar引入了码农的视线之中,从传统web开发中过来的人面对这个东西也算是个新鲜事了,接下来聊一聊在maven下生成可运行jar的那些事. Maven可以使用mvn package指 ...