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

编程开发
47
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);
   }
}

导致问题的原因:

解决办法

重新编译app应用程序主程序,这是在使用常量时必须要注意和理解的一个问题。

c# 获取本机电脑名称、Ip信息
Javascript限制网页仅在微信浏览器中打开
多线程使用Image.FromFile 加载图片时出现图片文件被锁定无法更新
highlight代码高亮插件怎么实现代码显示行号效果?
AJAX上传Form表单内容和文件
C#怎么获取windows系统支持的字体以及字体样式
C#解析获取GIF帧图像
C#开发怎么将Bitmap转换成BitmapImage
.NET5框架下使用HttpListener类实现http接口监听替代OWIN自我寄宿
WPF开发样式文件的四种引用方式
C# 设置文件指定默认打开程序的设置方法
微信公众平台C#开发系列(十三):模板消息-获得模板ID
暂无相关内容...
C#结合虫洞软件(Wormhole)实现自动登录到手机版百度网盘的流程源码
 远程控制软件Radmin3.4 中文完整版(控制端和被控端)
[人脸检测]基于C#OpenCvSharp+haarcascade人脸、人眼模型实现人脸检测源码
基于Wpf+MVVM实现的完整截图软件的框选区域效果源码
基于.NET4.0实现的目录文件新增监视并自动化上传至ftp完整流程工具源码
visual studio 2019在线安装包和激活码密钥key
免责声明 部分转载分享内容若侵犯您的权益,还请 邮件联系 侵删