|
|
1
19
一旦属性违反最小惊喜原则就设置 -调用方希望当一个属性可以设置一次时,它可以再次设置。(当然,除了范围和兼容性检查之外,它们还绑定到特定的值或值组合)。
在构造函数中初始化它们。
或者,分离配置对象中的设置,这些设置可以在构造期间替换或传递。 |
|
|
2
12
我认为,如果将这些值传递给构造函数,并将其作为只读属性公开,那么对调用方来说,设计将更加清晰。如果在构建时无法设置该值,则在尝试再次设置该值时,可能需要引发异常:
只是要非常清楚: 我不 以任何方式 促进使用一次性设置属性 ;代码示例只显示 可以 使用, 如果在施工时该值不可用 不管什么原因。也就是说,我从未在我参与过的任何项目中遇到过这种情况。 |
|
|
3
4
我建议把它们设置在建筑上,从而使设置者成为私有的。这似乎是更明智的做法。 如果你想这样做,就抛出某种异常。至少让开发人员知道您没有设置它们的值,而不是默默地忽略它。 |
|
|
4
1
我同意弗雷德里克的观点,只读更合理。这样,您只能在构造函数中声明变量(或作为声明的一部分)。我认为做你所做的事情并不能立即清楚地表明这是你想要实现的。 退房 this MSDN页。 |
|
|
5
1
只需让setters方法而不是属性——期望和行为之间的分离就消失了。该方法可以自由地引发InvalidOperationException,但不期望由属性设置器执行该操作。
|
|
|
6
0
如果foothingy是一个像int这样的值对象,它将被0初始化而不是空值。剩下的看起来还可以 |
|
|
7
0
很难从这个玩具例子中分辨出来,但听起来
|
|
|
A B · C#Excel自动调整列避免长文本时出错 11 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 11 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 11 月前 |
|
|
Duck0 · 这个对象在更高的帧率下会更快吗,因为它在Update()中? 11 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 11 月前 |