我有一个在另一个上下文中使用的对象,我想验证私有成员是null还是空(由其属性公开)。最好在对象的类中声明封装行为,而不是在使用的每个时刻进行验证,但问题是如果更好地将它作为属性或方法来做?
public bool HasValue()
{
return String.IsNullOrEmpty(this.privateMember) == false;
}
或
public bool HasValue
{
get
{
return String.IsNullOrEmpty(this.privateMember) == false;
}
}
使用示例:
if(myObject.HasValue()){
}
或
if(myObject.HasValue){
}
什么更好?任何影响或只是视觉?
答案 0 :(得分:3)
当然,感觉感觉对我来说更像是一种属性而不是一种方法 - 而且它确实与Nullable<T>.HasValue
之类的东西保持一致。
需要考虑的其他差异:
不应对性能产生任何影响。
顺便说一句,我不是与false
进行比较,而是将实现编写为:
return !string.IsNullOrEmpty(privateMember);
答案 1 :(得分:2)
它对编译器没有太多影响它只是视觉但我更喜欢第二个我总是讨厌():)
答案 2 :(得分:0)
System.Nullable<T>
使用属性HasValue
,因此我将使用相同的方法与.NET Framework保持一致。