Eri*_*ric 5 c# properties semantics
可能重复:
属性与方法
我有一些矢量几何类,并且有很多功能我不知道是否实现为(只读)属性或方法.例子包括:
Vector.Length or Vector.Length()
Vector.Perpendicular or Vector.Perpendicular()
Matrix.Determinant or Matrix.Determinant()
Matrix.Inverse or Matrix.Inverse()
Run Code Online (Sandbox Code Playgroud)
我应该将这些作为方法或属性实现吗?他们都没有改变他们适用的对象,所以在这方面,他们似乎适合作为属性.另一方面,它们涉及计算(虽然是小的 - 这是2D几何),这显然对属性不利.
在这种情况下,我应该使用哪些规则?
属性用于启用统一访问原则,因此,只要您进行一些计算,属性就是最佳选择.这是因为它们是描述对象而不是对对象做事而不需要任何外部计算参数的东西.
有了变异的权利,getter不应该变异,并且setter可能会根据Command Query Separation Principle变异.
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |