const和static readonly区别


Posted in 面试题 onMay 20, 2013
答:const
用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序
static readonly
用 static readonly 修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化
示例:
测试类:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example02Lib
{
public class Class1
{
public const String strConst = “Const”;
public static readonly String strStaticReadonly = “StaticReadonly”;
//public const String strConst = “Const Changed”;
//public static readonly String strStaticReadonly = “StaticReadonly Changed”;
}
}
客户端代码:
using System;
using System.Collections.Generic;
using System.Text;
using Example02Lib;
namespace Example02
{
class Program
{
static void Main(string[] args)
{
//修改Example02中Class1的strConst初始值后,只编译Example02Lib项目
//然后到资源管理器里把新编译的Example02Lib.dll拷贝Example02.exe所在的目录,执行Example02.exe
//切不可在IDE里直接调试运行因为这会重新编译整个解决方案!!
//可以看到strConst的输出没有改变,而strStaticReadonly的输出已经改变
//表明Const变量是在编译期初始化并嵌入到客户端程序,而StaticReadonly是在运行时初始化的
Console.WriteLine(“strConst : {0}”, Class1.strConst);
Console.WriteLine(“strStaticReadonly : {0}”, Class1.strStaticReadonly);
Console.ReadLine();
}
}
}
结果:
strConst : Const
strStaticReadonly : StaticReadonly
修改后的示例:
测试类:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example02Lib
{
public class Class1
{
//public const String strConst = “Const”;
//public static readonly String strStaticReadonly = “StaticReadonly”;
public const String strConst = “Const Changed”;
public static readonly String strStaticReadonly = “StaticReadonly Changed”;
}
}
结果
strConst : Const
strStaticReadonly : StaticReadonly Changed

Tags in this post...

面试题 相关文章推荐
你常见到的runtime exception
Sep 05 面试题
附答案的Java面试题
Nov 19 面试题
用C或者C++语言实现SOCKET通信
Feb 24 面试题
求两个数的乘积和商数,该作用由宏定义来实现
Mar 13 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
Jun 13 面试题
.NET笔试题(20个问题)
Feb 02 面试题
长青弘远的面试题
Jun 09 面试题
主要的Ajax框架都有什么
Nov 14 面试题
Python里面如何实现tuple和list的转换
Jun 13 面试题
MVC的各个部分都有那些技术来实现?如何实现?
Apr 21 面试题
编程输出如下图形
Nov 24 面试题
J2EE中的容器都包括哪些
Aug 21 面试题
某公司C#程序员面试题笔试题
May 26 #面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 #面试题
C#里面可以避免一个类被其他类继承么?如何?
Sep 26 #面试题
extern是什么意思
Mar 10 #面试题
星空联盟C# .net笔试题
Dec 05 #面试题
C#里面如何倒序排列一个数组的元素?
Jun 21 #面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
Feb 24 #面试题
You might like
PHP的面试题集
2006/11/19 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
PHP中的session安全吗?
2016/01/22 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
koa-router源码学习小结
2018/09/07 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
Python跳出循环语句continue与break的区别
2014/08/25 Python
编程语言Python的发展史
2014/09/26 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
C语言如何决定使用那种整数类型
2016/11/26 面试题
2014全国两会学习心得体会2000字
2014/03/10 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
教师年终个人总结
2015/02/11 职场文书
毕业生党员个人总结
2015/02/14 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript