答案 0 :(得分:0)
根据以下句子之一:
此外,变量标记为只读,这意味着它可以 仅在静态初始化期间(此处显示)或 在类构造函数中。
不,你严格地不会需要这一点 - 但是如果你允许一个单例被初始化不止一次,它会造成很大的额外混乱和复杂性。
最内层Instance
是一个属性,而不是一个类 - 并且使其成为静态允许轻松访问而无需首先创建Instance
类的实例,这是不必要的,而不是真的提供任何好处。
答案 1 :(得分:0)
该类未声明为静态,而是密封(其他类不能将其子类化)。这样做是因为有问题的单例实现知道只实例化这个特定类的实例。
如果你继承它:
public class Child: Singleton { ... }
Child类仍将实例化基类:
Child.Instance
仍将返回Singleton的实例),这将导致令人困惑的代码。
readonly增加了代码的可读性,并防止在将来修改类时出错。