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程序员笔试题
Jan 01 面试题
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
Jun 05 面试题
2019年Java 最常见的 面试题
Oct 19 面试题
一个C/C++编程面试题
Nov 10 面试题
"引用"与指针的区别是什么
Sep 07 面试题
武汉世纪畅想数字传播有限公司.NET笔试题
Jul 22 面试题
某公司.Net方向面试题
Apr 24 面试题
北京某科技有限公司C# .net笔试题
Sep 27 面试题
介绍一下Make? 为什么使用make
Jul 31 面试题
百度软件工程师职位
Feb 14 面试题
如何整合JQuery和Prototype
Jan 31 面试题
德尔福集团DELPHI的笔试题
Feb 22 面试题
某公司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 print类函数使用总结
2010/06/25 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python注释详解
2016/06/01 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
银行内勤岗位职责
2014/04/09 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
专家推荐信模板
2014/05/09 职场文书
反腐倡廉标语
2014/06/24 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python
DQL数据查询语句使用示例
2022/12/24 MySQL