一、 使用readonly而不是const
const是编译时常量,readonly是运行时常量。如果引用了一个库中的const常量,则在更新了程序集,但应用程序没有重新编译时,运行结果会出错
如程序集assembly.dll中有如下声明
1 public static readonly int Start = 1; 2 public const int End = 10;
在ConsoleApp.exe中调用。在正常编译的情况下是没有问题的,但如果更新了assembly.dll中的声明,却不重新编译ConsoleApp.exe,此时End常量的值依旧是10
1 public static readonly int Start = 10; 2 public const int End = 20;