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

面试题 相关文章推荐
是什么让J2EE适合用来开发多层的分布式的应用
Jan 16 面试题
如何设置Java的运行环境
Apr 05 面试题
分布式数据库需要考虑哪些问题
Dec 08 面试题
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
Sep 17 面试题
标记环网Toke Ring IEEE802.5
May 26 面试题
世界经理人咨询有限公司面试
Sep 23 面试题
linux面试题参考答案(8)
Apr 19 面试题
Linux内核产生并发的原因
Jul 13 面试题
Linux操作面试题
Feb 11 面试题
linux面试题参考答案(4)
Jan 28 面试题
配置管理计划的主要内容有哪些
Jun 20 面试题
DELPHI面试题研发笔试试卷
Nov 08 面试题
某公司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
动态生成gif格式的图像要注意?
2006/10/09 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
使用python 对验证码图片进行降噪处理
2019/12/18 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
Python如何实现定时器功能
2020/05/28 Python
ORACLE十问
2015/04/20 面试题
品恩科技软件测试面试题
2014/10/26 面试题
网上开店必备创业计划书
2014/01/26 职场文书
公安学专业求职信
2014/07/27 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
上班迟到检讨书
2014/09/15 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
先进党支部申报材料
2014/12/24 职场文书
送达通知书
2015/04/25 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
MySQL笔记 —SQL运算符
2022/01/18 MySQL
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android