公共const字符串?
是否可以使用这样的类(特定于设计/指南)? 我正在使用MVVM模式。
public static class Pages { public const string Home = "Home.xaml"; public const string View2 = "View2.xaml"; /* a few more... */ }
const
和public static readonly
之间存在显着差异,您应该考虑小心使用哪个:
(在这里,“客户”,我的意思是“代表成员的不同程序集中的代码。)
如果你很高兴重新编译你的所有客户,如果你改变了价值,第二个要点的好处指向使用const
。
当然,我想知道Pages
是否真的需要公开……听起来像是internal
成员, internal
成员 – 这时const
的缺点完全消失了。
从您的问题的设计角度来看,使用单个静态对象来包含所有页面引用似乎很快就会变得混乱。 你能不能只将它存储在实际的页面对象中?
class view2 { public const string PageName = "View2.xaml"; ... other stuff ... }
然后按照……的方式来称呼它
goTo(view2.PageName);
使用const
定义常量值时的一般准则。 是否要在assembly外访问这些常量? 如果没有,则将其声明为
internal static class Pages { public const string Home = "Home.xaml"; public const string View2 = "View2.xaml"; /* a few more... */ }
我认为这是你能做的最好的事情之一。 一些更多的建议:使用字符串,使用const
是完全没问题的。 如果您想要使用不同的类型,请使用static readonly
,然后在static
构造函数中初始化。
对于使用枚举的其他方法,请参阅此主题 。 因为你要做的事情看起来很像字符串枚举,这可能是你的选择。
并且不要忘记,只要您在代码中指定页面,进行更改(例如重命名或移动页面)将是一件痛苦的事。 考虑使用资源或站点地图等内容。 (如果你只使用该类作为页面列表, 我会使用C#的强类型资源 – 它们的行为与你的类相同,你不必手动编写它们。)
上述就是C#学习教程:公共const字符串?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1028046.html