![]() |
1
3
我发现这里最好的一般规则是:如果两次调用操作会导致多个资源调用或不同的行为-使用一个方法。 因此,在您的示例中,如果属性缓存以下内容,则可以使用它:
但是,该方法不需要-用户希望它是一个更密集的操作:
设计问题是您希望如何使用这个类? 将调用一个属性,就好像它是一个“廉价”操作:
方法提示开发人员,他们应该尽可能少地调用它:
就我个人而言,我更喜欢保持临时类的简单性,因此在绝大多数情况下,我将使用方法模型。 因为这是一个相当标准的约定,所以您应该避免不缓存的属性和这样做的方法。 |
![]() |
2
6
就我个人而言,我将获取getResolvedText方法的主体,并在属性中使用它,因此:
这将把管理字符串的所有责任都放在一个地方。类本身可以访问
|
![]() |
3
2
我将把它作为一个属性来保存,因为它表示一个不需要很多计算就可以检索的值。 |
![]() |
4
0
对我来说,如果getter不能抛出异常或空/无效值,它应该是一个属性。这就是属性的作用。 但是,如果你做一些复杂的事情,如果必须是一个函数getter。显然,这里只有1个if,所以我将使用一个属性。 |
![]() |
5
0
将您的示例和Steve的答案重新组合在一起,再加上一些缓存,很明显,资源值应该只读取一次,因为它永远不会更改,并且根据合同,我们必须尽快从属性返回值:
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |