在阅读此microsoft article关于何时使用属性和方法后,我有点困惑。
在底部的例子中,他们说:
以下代码示例显示了一个完整的应用程序 属性访问在计算上是便宜的。该 EmployeeData类错误地定义了一个返回副本的属性 一个数组。
具体而言
EmployeeData类错误地定义了一个返回a的属性 数组的副本。
这样做的正确方法是什么?
答案 0 :(得分:1)
这只是一个指导原则,但您的属性应尽可能轻量级。复制数组,就像在示例中一样,对于属性而言是非常广泛的。它应该是一种方法。这样,使用此代码的任何人都知道它可能需要一些时间。属性通常反映私有字段的访问者,因此人们期望它几乎立即返回。希望这是有道理的。
答案 1 :(得分:1)
该属性“不正确”,因为其中的代码很慢。
public EmployeeRecord[] Employees
{
get
{
return CopyEmployeeRecords(); // slow code in property - bad
}
}
相反,写一个方法:
public EmployeeRecord[] Employees()
{
return CopyEmployeeRecords(); // slow code in method - ok
}
答案 2 :(得分:0)
部分
您正在阅读的文章中的在以下情况下使用方法而不是属性。
告诉您使用方法而不是属性的属性返回数组。
所以正确的方法是创建一个复制数组的方法。