这个问题已经在这里有了答案:




9年前关闭。






我有一些矢量几何类,并且有很多功能我不知道该实现为(只读)属性还是方法。示例包括:

Vector.Length                   or              Vector.Length()
Vector.Perpendicular            or              Vector.Perpendicular()
Matrix.Determinant              or              Matrix.Determinant()
Matrix.Inverse                  or              Matrix.Inverse()

我应该将它们实现为方法还是属性?它们没有一个改变它们所应用的对象,因此在这方面,它们似乎适合作为属性。另一方面,它们涉及计算(尽管是很小的-这是2D几何),这显然对属性不利。

在这种情况下我应该使用哪个规则?

最佳答案

属性用于启用Uniform Access Principle,因此即使您进行了一些计算,属性也是此处的最佳选择。这是因为它们是对对象的描述多于对对象的描述,并且不需要任何外部计算的参数。

具有突变权, setter/getter 不应突变,二传手可根据Command Query Separation Principle进行突变。

关于c# - 我应该使用属性或方法来计算值吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6309447/

10-11 03:31
查看更多