C#:如何在类中保存数据并在任何地方访问它

时间:2017-01-11 07:33:51

标签: c#

假设我有一些我希望存储的数据,并且在应用程序关闭之前可以随处使用。

public class Storage(){

public string Aa {set; get;}
public int Bb {set; get;}

}
var insert = new Storage{

Aa = "Im a string",
Bb = 123

};

现在我需要做什么更改才能使insert对象在应用程序关闭之前随处可用?换句话说,如何在Storage类中保存数据并在应用程序关闭之前使其可用?

3 个答案:

答案 0 :(得分:1)

您必须将变量insert定义为静态变量,以便您可以从应用程序中的任何位置访问它们,而不是定义变量的类。因此insert变量的定义应如下所示:

public static Storage insert = new Storage(){Aa = "Im a string",Bb = 123};

让我假设变量是在一个名为AppVariables的类中定义的,您可以从以下任何其他类访问它们:

AppVariables.insert; 

答案 1 :(得分:1)

您可以为您的类提供一个公开的静态属性,公开自己的实例(singleton pattern)。这样,您可以在任何地方访问您的类属性:

public class Storage
{
    private Storage() {} 
    private static readonly Lazy<Storage> instance = new Lazy<Storage>(() => new Storage());
    public static Storage Instance { get { return instance.Value; } }

    public string Aa {set; get;}
    public int Bb {set; get;}
}

//access anywhere:
Console.WriteLine(Storage.Instance.Aa);

答案 2 :(得分:0)

您可以使用静态变量,以便可以从项目中的任何其他类访问它们,只要服务正在运行,它们就会保留数据。 尝试类似:

public class Storage() {
    public static string Aa {set; get;}
    public static int Bb {set; get;}
}

注意:你可以创建一个静态类/ var的单个实例!如果你必须保留多对,你最好使用静态字典:

public class Storage() {
    public static Dictionary<string, int> storages {set; get;} 
}