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

面试题 相关文章推荐
如何实现jdbc性能优化
Jul 30 面试题
如何用Lucene索引数据库
Feb 23 面试题
几个人围成一圈的问题
Sep 26 面试题
C语言50道问题
Oct 23 面试题
如何提高SQL Server的安全性
Jul 25 面试题
如何找出EMP表里面SALARY第N高的employee
Dec 05 面试题
请解释流与文件有什么不同
Jul 29 面试题
internal修饰符起什么作用
Dec 16 面试题
初始化了一个没有run()方法的线程类,是否会出错?
Mar 27 面试题
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
Feb 16 面试题
Shell脚本如何向终端输出信息
Apr 25 面试题
一道Delphi面试题
Oct 28 面试题
某公司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
重置版宣传动画
2020/04/09 魔兽争霸
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
php缓冲输出实例分析
2015/01/05 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
php去掉文件前几行的方法
2015/07/29 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
javascript 获取网页参数系统
2008/07/19 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
linux下安装easy_install的方法
2013/02/10 Python
python访问sqlserver示例
2014/02/10 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
使用Python封装excel操作指南
2021/01/29 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
大学生自我鉴定范文模板
2014/01/21 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python