创建要在范围之外使用的对象

时间:2016-10-09 13:38:47

标签: c# scope

所以我现在正在创建一个程序,我只需要创建一个特定类/子类的对象。但是我想能够在几个不同的按钮'事件'中编辑这个对象。 我希望一旦程序启动就可能在main函数中创建对象,但是然后能够使用“main”范围之外的对象,例如按下按钮时。我环顾四周,似乎无法找到任何特殊方式,这将起作用。我用Windows Forms在c#中编写它。

所以任何建议都会有所帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

您正在寻找的是Singleton模式。

它通过在类上公开一个静态属性来工作,该属性将始终返回它的相同实例:

public sealed class MySingleInstanceClass
{
    private static readonly MySingleInstanceClass instance = new MySingleInstanceClass();

    public static MySingleInstanceClass Instance 
    { 
        get
        {
            return instance;
        }
    }

    static MySingleInstanceClass()
    {
    }

    // Use a private constructor so no one besides your own class can create an instance of it
    private MySingleInstanceClass()
    {
    }

    public string SomeProperty { get; set; }
}

所以现在,无论何时(以及何时)你需要访问这个类,你都会这样使用它:

MySingleInstanceClass.Instance.SomeProperty = "foo";