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

面试题 相关文章推荐
什么是Deployment descriptors;都有什么类型的部署描述符
Jul 28 面试题
如何在Cookie里面保存Unicode和国际化字符
May 25 面试题
.net笔试题
Mar 03 面试题
北京泡泡网网络有限公司.net面试题
Jul 17 面试题
简述网络文件系统NFS,并说明其作用
Oct 19 面试题
UDP协议功能
Jan 06 面试题
C#如何判断当前用户是否输入某个域
Dec 07 面试题
Why we need EJB
Oct 20 面试题
Ajax和javascript的区别
Jul 20 面试题
介绍一下mysql的日期和时间函数
Mar 28 面试题
几道Java和数据库的面试题
May 30 面试题
新锐科技Java程序员面试题
Jul 25 面试题
某公司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备份/还原MySQL数据库的代码
2011/01/06 PHP
PHP数据类型之布尔型的介绍
2013/04/28 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
js Dialog 实践分享
2012/10/22 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
用JS实现简单的登录验证功能
2017/07/28 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
python实现媒体播放器功能
2018/02/11 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Python通过字典映射函数实现switch
2020/11/06 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
台湾家适得:Homeget
2019/02/11 全球购物
社会实践心得体会
2014/01/03 职场文书
将相和教学反思
2014/02/04 职场文书
黄山导游词
2015/01/31 职场文书
学校中秋节活动总结
2015/03/23 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
叶问观后感
2015/06/15 职场文书
工作简历的自我评价
2019/05/16 职场文书