这就是我在说的。

public sealed class ObjectZ {
    static readonly ObjectZ _instance = new ObjectZ();
    private ObjectZ() {}
    public static ObjectZ Instance{
        get { return _instance; }
    }
}


我想访问此指针...

ObjectZ obj = ObjectZ.Instance;


从另一个类,而不将其传递给构造函数或方法并进行设置。如果我从另一个班级开始做这行,是否会得到相同的对象?

我习惯了Objective-C,您可以在其中一行从UIApplicationDelegate检索单例样式对象。

最佳答案

不管您在代码中的哪个位置访问ObjectZ.Instance值,都将返回相同的对象。它由静态字段支持,并且静态字段本质上是全局的。

虽然有两种情况,其中静态字段将具有不同的值。


如果静态字段位于不同的AppDomain实例中。通常,尽管应用程序只有一个AppDomain
如果静态字段包含在通用类型中,则不同的实例将具有不同的静态字段值

关于c# - 从类访问C#Singleton,而不将其传递给类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15775652/

10-11 02:10