我认为在引用程序集中使用const
通常是一个非常糟糕的想法。
原因是C#编译器将常量视为值而不是引用,正如我在这个答案中所说。
我的意思是,C#编译器将替换您代码中所有常量的实例,并用值替换“变量”。
这意味着即使您更新了GlobalConstants.dll程序集并将其复制到其中一个应用程序中,您仍需要重新编译该应用程序。否则,该应用程序将使用旧的常量值。
为解决此问题,您可以简单地使用public static readonly而不是public const,因为readonly修饰符与const不同,它在代码中被C#编译器视为引用而不是值。
Math.PI
会改变吗? - Jon Skeet
""
- Cody Gray