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 session
Apr 21 面试题
你所知道的集合类都有哪些?主要方法?
Dec 31 面试题
String这个类型的class为何定义成final?
Nov 13 面试题
类如何去实现接口
Dec 19 面试题
大整数数相乘的问题
Jul 22 面试题
利达恒信公司.NET笔试题面试题
Mar 05 面试题
什么是Smart Navigation?
Jul 03 面试题
盛大二次面试题
Nov 18 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 面试题
what is the difference between ext2 and ext3
Nov 03 面试题
什么是设计模式
Jun 17 面试题
一道输出判断型Java面试题
Oct 01 面试题
某公司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
如何使用脚本模仿登陆过程
2006/11/22 PHP
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
php的一个登录的类 [推荐]
2007/03/16 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
python有几个版本
2020/06/17 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
Python进度条的使用
2021/05/17 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
MySQL新手入门进阶语句汇总
2022/09/23 MySQL