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...

面试题 相关文章推荐
如何让Java程序执行效率更高
Jun 25 面试题
华为慧通笔试题
Apr 22 面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 面试题
下述程序的作用是计算机数组中的最大元素值及其下标
Nov 26 面试题
汇智创新科技发展有限公司
Dec 06 面试题
西部世纪.net笔试题面试题
Apr 03 面试题
Net Remoting把服务器端激活两种模式
Jan 22 面试题
C#可否对内存进行直接的操作
Feb 26 面试题
linux面试题参考答案(2)
Dec 06 面试题
GWT的应用有哪两种部署模式
Dec 21 面试题
请说出这段代码执行后a和b的值分别是多少
Mar 28 面试题
Java程序员常见面试题
Jul 16 面试题
某公司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
PHP4实际应用经验篇(8)
2006/10/09 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
PHP的引用详解
2015/02/22 PHP
php关联数组快速排序的方法
2015/04/17 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
JavaScript日历实现代码
2010/09/12 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
简述JS控制台的使用
2018/07/15 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
使用Python脚本操作MongoDB的教程
2015/04/16 Python
深入理解python对json的操作总结
2017/01/05 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
python实现windows下文件备份脚本
2018/05/27 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
django基于restframework的CBV封装详解
2019/08/08 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
python add_argument()用法解析
2020/01/29 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
Python try except else使用详解
2021/01/12 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
学习标兵获奖感言
2014/02/20 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书