配置类中,若一个值不会变,是声明成static readonly好,还是弄成const好?

卧槽这是我的昵称吗 2014-10-11 11:01:28
比如我test方法中,只需要在配置类A或B中取一个Key值,而这个Key值在程序运行中都不会变

//配置类A和B
public class A
{
private static readonly string key = "9527"; //或丢在静态构造函数中
public static string Key
{ get { return key; } }
}

public class B
{
public const string Key = "9527";
}

/////////////////////////////
public void test()
{
string _const = A.Key;
string _readonly = B.Key;
}


如果只是这样的简单需求,用常量,和用一个只读属性,有啥区别吗(一个代码写得多一个代码少不算...)?

目前它们的区别只知道常量是编译时生成,另一个是在运行时生成。但不管在何时生成,因为Key值不会变,对我这个test()里的取值都没啥影响吧?

还有就是,生成bin后丢到IIS里,如果IIS站点不重启的前提下,程序中改变这个Key值,将bin重新编译生成后覆盖到IIS,test()中获取的key值A.Key(const) 和B.Key(readonly static) 会不会都跟着改变?(印象中覆盖bin文件后iis会自动重启, 所以A和B中的Key都会变?)

...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 chb345536638 的回复:
http://blog.csdn.net/high_mount/article/details/6665573 http://www.cnblogs.com/qingxia/archive/2011/02/10/1950741.html
懂了 好棒
  • 打赏
  • 举报
回复
http://blog.csdn.net/high_mount/article/details/6665573 http://www.cnblogs.com/qingxia/archive/2011/02/10/1950741.html
  • 打赏
  • 举报
回复
刚在老外文章中看见另一个不同点。。。 若前面将的都在一个类库中(main.dll)中, 若sub.dll中有程序调用了 A.Key(const) 和 B.Key(readonly) 。 然后,修改Key值重编译main.dll,覆盖之。但sub.dll没有重编译,那么 A.Key是旧值, B.Key是新值

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧