C# 中使用const 常量可能会出现的版本更新问题!

编程开发 C#const常量更新常量不生效

前言:

常量是一种表示恒定不变的值的符号,当定义一个常量时,我们必须在编译时就确定它的值,而当使用常量时,编译器首先从定义常量的模块元数据中查找符号,直接取出常量的值,然后就将它嵌入到编译后产生的IL代码中。

由于常量的值是直接嵌入到代码中的,所以常量在运行时不再需要任何的内存分配,所以我们不能获取常量的地址,或者以引用的方式来传递一个常量。

下面这个例子,我们会发现常量可能导致的版本更新问题 单独修改发布后仅替换MaxEntriesInList的Component.dll会发现输出值都会是第一次编译时的值

public class Component 
{ 
          public const Int32 MaxEntriesInList=50;
}
//接着引用这个对象:

class app
{
   static void Main()
   {
           Console.WriteLine(“Max entries supported in list:”+Component.MaxEntriesInList);
   }
相关推荐
免责声明 本站部分内容来源于互联网公开资源分享学习交流,若其中有侵犯到了您的权益 还请邮件联系我方删除