快速提问:您何时决定使用属性(在C#中)以及何时决定使用方法?
我们正在忙着进行这场辩论,并且发现了一些我们应该使用财产或方法存在争议的领域.一个例子是:
public void SetLabel(string text)
{
Label.Text = text;
}
Run Code Online (Sandbox Code Playgroud)
在该示例中,Label
是ASPX页面上的控件.是否有一个原则可以控制决策(在这种情况下)是否将其作为方法或财产.
我会接受最全面和最全面的答案,但这也触及了我给出的例子.
当从中读取或分配属性时,人们不会期望它执行大量工作.当setSomeValue(...)
和getSomeValue(...)
方法来代替,人们不应该感到惊讶的东西不平凡的可能引擎盖下回事.但是,现在C#给了世界属性,使用getter和setter方法似乎很愚蠢.你对此有什么看法?我应该将此Q标记为社区维基吗?
谢谢.
编辑:
在我的情况下,调用并不昂贵,但它触发在另一个类中设置相关属性,并可能将短消息写入日志文件(如果URL为空).这对房产来说太过分了吗?有什么选择.
哪种更好的做法,为什么?
bool IsTodayMonday { get { return DateTime.Now.DayOfWeek == DayOfWeek.Monday; } }
Run Code Online (Sandbox Code Playgroud)
要么
bool IsTodayMonday()
{
return DateTime.Now.DayOfWeek == DayOfWeek.Monday;
}
Run Code Online (Sandbox Code Playgroud)