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

面试题 相关文章推荐
几道PHP面试题
Apr 14 面试题
PHP两种查询函数array/row的区别
Jun 03 面试题
JDO的含义
Nov 17 面试题
怎么处理XML的中文问题
Mar 26 面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 面试题
几个数据库方面的面试题
Jul 01 面试题
上海天奕面试题笔试题
Apr 19 面试题
如何转换一个字符串到enum值
Apr 12 面试题
Linux开机引导的步骤是什么
Feb 26 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
Dec 04 面试题
什么是Web Service?
Jul 25 面试题
同步和异步有何异同,在什么情况下分别使用他们
Apr 09 面试题
某公司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就可用
2010/10/12 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
python 编码规范整理
2018/05/05 Python
python实现屏保计时器的示例代码
2018/08/08 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
do you have any Best Practice for testing
2016/06/04 面试题
维护民族团结心得体会2016
2016/01/15 职场文书
卖车协议书范文
2016/03/23 职场文书
Python3接口性能测试实例代码
2021/06/20 Python
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
muduo TcpServer模块源码分析
2022/04/26 Redis
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL