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

面试题 相关文章推荐
解释一下ArrayList Vector和LinkedList的实现和区别
Apr 26 面试题
C语言笔试题
Sep 04 面试题
北京某公司的.net笔试题
Mar 20 面试题
你对IPv6了解程度
Feb 09 面试题
什么是三层交换,说说和路由的区别在那里
Sep 01 面试题
长青弘远的面试题
Jun 09 面试题
Final类有什么特点
Apr 25 面试题
Exception类的常用方法
Jun 16 面试题
北京振戎融通Java面试题
Sep 03 面试题
Java程序员面试题
Jul 15 面试题
25道Java面试题集合
May 21 面试题
如何现实servlet的单线程模式
Aug 05 面试题
某公司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中的超全局变量
2006/10/09 PHP
图书管理程序(二)
2006/10/09 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
PHP实现搜索相似图片
2015/09/22 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
python编写分类决策树的代码
2017/12/21 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
民族精神月活动总结
2014/08/28 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
人事专员岗位职责
2015/02/03 职场文书
民政局未婚证明
2015/06/15 职场文书
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫