Asi*_*jad 12 c# methods properties
例如,当它返回值时哪一个更好用
public int EmployeeAge
{
get{return intEmployeeAge};
}
Run Code Online (Sandbox Code Playgroud)
和
public int EmployeeAge()
{
return intEmployeeAge;
}
Run Code Online (Sandbox Code Playgroud)
哪一个更好,为什么?当我们有像上面这样的secnario时,最好的编程习惯是什么?
Mar*_*ell 31
属性是表达对象特征的有用方式,允许以通用方式获取/设置,可以由API使用,如数据绑定,反射和序列化.因此,对于对象的简单值,属性很方便.属性不能带参数,不应该有明显的副作用*,并且应该快速且可重复地返回.此外,不存在"扩展属性"(镜像扩展方法)或通用属性.
(*=延迟加载等并不少见)
方法(C#没有函数)更好地表达要么改变状态,要么期望花费一些时间而不一定是可再现的东西.它们不倾向于在绑定/序列化等方面工作.
请注意,属性实际上只是编写方法的一种特殊方式.几乎没有功能差异.这完全是关于表达意图.你的一件事不希望暴露,但是,是字段(实际的intEmployeeAge
实例变量).
所以我会:
public int EmployeeAge { get{return intEmployeeAge}; }
Run Code Online (Sandbox Code Playgroud)
或只是(如果在Employee
对象上):
public int Age { get{return intEmployeeAge}; }
Run Code Online (Sandbox Code Playgroud)
当然......然后问题变成"在什么单位?" 我认为那是几年?
归档时间: |
|
查看次数: |
28882 次 |
最近记录: |