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笔面试
Sep 23 面试题
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
Feb 08 面试题
北京华建集团SQL面试题
Jun 03 面试题
.NET程序员的数据库面试题
Oct 10 面试题
C#基础面试题
Oct 17 面试题
Linux中如何用命令创建目录
Jan 12 面试题
介绍一下linux的文件权限
Feb 15 面试题
介绍一下Linux中的链接
May 28 面试题
外企测试工程师面试题
Feb 01 面试题
请问软件开发中的设计模式你会使用哪些
May 13 面试题
J2EE是技术还是平台还是框架
Aug 14 面试题
JSF的标签库有哪些
Apr 27 面试题
某公司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 常用字符串函数总结
2008/03/15 PHP
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
前端必学之PHP语法基础
2016/01/01 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
JavaScript 动态生成方法的例子
2009/07/22 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
JSON.stringify()方法讲解
2019/01/31 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
python 接口_从协议到抽象基类详解
2017/08/24 Python
Python线程之定位与销毁的实现
2019/02/17 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
什么是View State?
2013/01/27 面试题
公司节能减排倡议书
2014/05/14 职场文书
优秀团队申报材料
2014/12/26 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis