公共const字符串?

SBo*_*oss 22 c# mvvm

可以使用这样的类(特定于设计/指南)吗?我正在使用MVVM模式.

public static class Pages
{
    public const string Home = "Home.xaml";
    public const string View2 = "View2.xaml";
    /* a few more... */
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 34

const和之间存在显着差异public static readonly,您应该考虑谨慎使用哪些:

(在这里,"客户",我的意思是"代表成员的不同程序集中的代码.)

  • 如果更改了值但不重新编译客户端,则在使用时它们仍将使用原始值const.有了public static readonly,他们将看到更新的价值.如果您无论如何重新编译所有客户端,这不是问题.
  • 只有const表单是编译时常量,这意味着它可以用于:
    • 属性参数
    • 切换语句
    • 可选参数声明

如果您愿意重新编译所有客户,如果您更改了值,则第二个要点的好处将指向使用const.

当然,我不知道是否Pages 真的需要是公共反正...听起来有点像这可能是internal,有internal成员-此时的缺点const完全消失.