This question already has answers here:
What is the best way to access properties from the same class, via accessors or directly? [closed]

(5个答案)


7年前关闭。




我有一个使用 setter/getter 访问某些数组的“数据”类。如果数组为空,那么我希望数据访问文件,填充数组,然后返回特定值。

现在这是我的问题:

创建getter和setter时,是否还应该使用与访问该数组相同的访问器属性(在这种情况下)?还是应该直接访问该阵列?

我在类中使用访问器的问题是,当调用类在Data.array中查找某些信息时,我得到了无限循环,getter发现数组为null,因此从文件中获取它,并且该函数结束从Data内再次调用getter时,array再次为null,我们陷入了无限循环。

编辑:

那么,对此没有官方立场吗?我看到了不使用其中具有文件访问权限的访问器的智慧,但是你们中的一些人说始终使用类中的访问器,而其他人则说永远不要使用类中的访问器......... ....................................

最佳答案

我同意克罗森沃尔德的观点,并希望概括一下他的建议:

不要将属性 getter 和 setter 用于昂贵的操作,例如读取文件或访问网络。使用显式函数调用进行昂贵的操作。

通常,该类的用户不会期望简单的属性检索或分配会花费很多时间。

This is also recommended in Microsoft's Framework Design Guidelines.;

关于c# - 您应该从类内部还是仅从类外部使用访问器属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/476021/

10-17 02:05