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

面试题 相关文章推荐
10条PHP编程习惯
May 26 面试题
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
Mar 14 面试题
Android面试题附答案
Dec 08 面试题
金士达面试非笔试
Mar 14 面试题
武汉瑞得软件笔试题
Oct 27 面试题
params有什么用
Mar 01 面试题
通用C#笔试题附答案
Nov 26 面试题
软件测试常见笔试题
Feb 04 面试题
为什么要用EJB
Apr 17 面试题
MYSQL基础面试题
May 13 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
Aug 18 面试题
请说出以下代码输出什么
Aug 30 面试题
某公司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中取得image按钮传递的name值
2006/10/09 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
Python自定义主从分布式架构实例分析
2016/09/19 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
python实现比较文件内容异同
2018/06/22 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
Oracle性能调优原则
2012/05/03 面试题
用Python写一个for循环的例子
2016/07/19 面试题
施工员岗位职责
2014/03/16 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
小学端午节活动总结
2015/02/11 职场文书
2019广播稿怎么写
2019/04/17 职场文书
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js