<分区>
我有一个项目使用了很多全局常量。最终我打算提取程序的某些部分并创建自己的程序集。
单独为全局常量创建程序集(即 GlobalConstants.dll)是否值得(或者可能?),以便我可以在未来的程序集中使用该程序集?
此方法将帮助我减少编码工作,并且我可以在整个项目中为常量保留相同的名称。
标签 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/