我是.NET的新手。我有一个名为Project的类,一个项目可以有多个预测。现在如果我想检查项目是否有任何预测,我应该使用名为HasForecast()的readonly布尔属性,还是应该使用名为HasForecast()的方法基本上返回一个布尔值。从框架设计指南我开始知道当操作很复杂时应该使用方法,因为在这里我应该考虑方法,或者因为它是逻辑数据成员,所以我从DB中检索预测值我应该使用属性。如果我使用属性,我可以从其getter中调用DBLayer中的方法。请解释
此致,拉维
答案 0 :(得分:8)
属性应该非常轻,行为和感觉像字段。如果您需要访问数据库,那么您应该使用方法。
请在此处查看MSDN:http://msdn.microsoft.com/en-us/library/bzwdh01d(VS.71).aspx
属性与方法
类库设计者通常必须决定将类成员实现为属性还是方法。通常,方法表示动作,属性表示数据。使用以下准则可帮助您选择这些选项。
时使用属性
在以下时间使用方法:
答案 1 :(得分:2)
如果该方法调用将启动数据库查询,我会将其作为一个方法,也许更改名称,以明确这不是简单地返回字段的值。
答案 2 :(得分:0)
我学到的一条好规则是,如果有可能无法保证财产立即返回*或者甚至可能抛出异常,那么请使用方法。
*对于立即的变量定义,可以在属性中使用逻辑,但保持尽可能短。
答案 3 :(得分:0)
这不仅仅是关于惯例吗?
我的意思是,在一天结束时,不是属性只是普通的吸气剂和制定者的语法糖吗?