Public const string?
是否可以使用这样的类(特定于设计/指南)?我正在使用MVVM模式。
1 2 3 4 5 6 | public static class Pages { public const string Home ="Home.xaml"; public const string View2 ="View2.xaml"; /* a few more... */ } |
(这里的"客户机"是指"不同程序集中引用成员的代码")。
- 如果您更改了值但不重新编译客户机,那么如果您使用
const ,客户机仍将使用原始值。使用public static readonly ,他们将看到更新的值。如果您仍然重新编译所有客户机,这不是问题。 - 只有
const 形式是编译时常量,这意味着它可以用于:- 属性参数
- switch语句
- 可选参数声明
如果您愿意重新编译所有客户,如果您更改了值,那么第二个要点的好处就指向使用
当然,我想知道,不管怎样,
从问题的设计角度来看,使用一个静态对象来包含所有页面引用似乎会很快变得混乱。你不能把它存储在实际的页面对象中吗?
1 2 3 4 5 | class view2 { public const string PageName ="View2.xaml"; ... other stuff ... } |
然后沿着…的线叫它…
1 | goTo(view2.PageName); |
使用
1 2 3 4 5 6 | internal static class Pages { public const string Home ="Home.xaml"; public const string View2 ="View2.xaml"; /* a few more... */ } |
我认为这是你能做的最好的事情之一。还有一些建议:对于字符串,使用
有关使用枚举的其他方法,请参阅此线程。因为您所要做的看起来非常像字符串枚举,所以这可能是适合您的方法。
而且不要忘记,只要在代码中指定页面,进行更改(例如重命名或移动页面)将是一种痛苦。考虑使用资源或站点地图之类的东西。(如果您只将类用于页面列表,我将继续使用C的强类型资源-它们的行为方式与您的类相同,您不必手工编码。)