|
|
1
3
注: 这是对原始答案的完全重写;然而,建议仍然有效。 首先:确保没有在调试器下运行。例如,监视窗口可能会接触到您的公共静态属性。这是第二个示例的行为可能与第一个不同的原因之一。听起来可能很傻,但你永远不会知道。
在.NET 4下,您的第二个示例确实有效,而且我会诚实地
期待
它也可以在.NET 2下工作。只要你不碰
而且,严格来说,
在所有的技巧之后,你仍然会得到以下相当不具说服力的结果:
您会期望setter的第二次调用可以工作(
你也可以去
这里的结果 是 有保证,而且懒惰(符合乔恩·斯基特的第五个单子方法)。而且看起来干净多了。 |
|
2
0
一些提示: 退房 Generics 我避免使用静态初始化。这在实践中会引起一些奇怪的问题。例如,如果您正在构造的内容引发错误,那么Windows加载器将告诉您有问题,但不会告诉您什么。实际上从未调用过您的代码,因此您没有机会让异常处理该问题。我在第一次使用时构造第一个实例。下面是一个例子:
|