假设我有一些我希望存储的数据,并且在应用程序关闭之前可以随处使用。
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
类中保存数据并在应用程序关闭之前使其可用?
答案 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;}
}