c# - 将常量移动到单独的程序集

标签 c# .net-4.0 assemblies

<分区>

我有一个项目使用了很多全局常量。最终我打算提取程序的某些部分并创建自己的程序集。

单独为全局常量创建程序集(即 GlobalConstants.dll)是否值得(或者可能?),以便我可以在未来的程序集中使用该程序集?

此方法将帮助我减少编码工作,并且我可以在整个项目中为常量保留相同的名称。

最佳答案

虽然这当然是可能的,甚至可能是一个很好的主意,但您应该意识到 C# 编译器将常量视为值而不是引用这一事实。

我的意思是,C# 编译器将替换您代码中常量的所有实例,并用值替换“变量”。

这意味着即使您更新程序集 GlobalConstants.dll 并将其复制到您拥有的应用程序之一,您也需要重新编译该应用程序。不这样做,将导致应用程序使用旧的常量值。

为了克服这个问题,您可以简单地使用 public static readonly 而不是 public const 因为 readonly 修饰符不同于 const,因为它被 C# 编译器视为代码中的引用而不是值。

关于c# - 将常量移动到单独的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470929/

相关文章:

c# - 数据绑定(bind)到数据表或gridview时出错

c# - EF Core 生成反向查询

c# - 使用 DataGrid 时 ScrollViewer 性能下降

c# - 使用内存映射文件的缺点

.net - 确定程序集是否是 .NET 框架的一部分

.net - 我可以在不重新编译的情况下将程序集转换为强命名程序集吗?

c# - 优化查找所有实现 IInterface<T> 的类以及使用特定类型显式实现它的类

c# - 如何调整文件大小, "trimming"开头?

c# - 使用动态添加方法?

c# - 可以不关闭 StreamReader/StreamWriter 以保持底层流打开吗?