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

面试题 相关文章推荐
构造方法和其他方法的区别?怎么调用父类的构造方法
Sep 22 面试题
C语言变量的命名规则都有哪些
Dec 27 面试题
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
Feb 22 面试题
c++工程师面试问题
Aug 04 面试题
介绍一下SQL Server里面的索引视图
Jul 31 面试题
不用游标的SQL语句有哪些
Sep 07 面试题
一些高难度的SQL面试题
Nov 29 面试题
Ado与Ado.net的相同与不同
Dec 08 面试题
当当网软件测试笔试题
Nov 24 面试题
软件测试面试题
Oct 21 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
Ajax和javascript的区别
Jul 20 面试题
某公司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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
js 操作select相关方法函数
2009/12/06 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
[00:09]DOTA2新版本PA至宝特效动作展示
2014/11/19 DOTA
Python translator使用实例
2008/09/06 Python
Python生成验证码实例
2014/08/21 Python
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
python结合API实现即时天气信息
2016/01/19 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
Python  Django 母版和继承解析
2019/08/09 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
请说出几个常用的异常类
2013/01/08 面试题
名人演讲稿范文
2013/12/28 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
2014年工程工作总结
2014/11/25 职场文书