设为首页 加入收藏

TOP

const 和 static readonly 区别?
2014-11-23 23:19:48 来源: 作者: 【 】 浏览:3
Tags:const static readonly 区别

答:


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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇急聘:高级技术经理,杭州电商巨头 下一篇面试常见话题的问与答 About Comm..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: