这个问题已经在这里有了答案:
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/