簡體   English   中英

C#:如何在類中保存數據並在任何地方訪問

[英]C#: How to save data in class and access it anywhere

可以說我有一些要存儲的數據,並使其在所有地方可用,直到關閉應用程序為止。

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類中保存數據並使其可用,直到關閉應用程序?

您必須將變量insert定義為靜態變量,以便就定義該變量的類而言,您可以從應用程序中的任何位置訪問它們。 因此,insert變量的定義應類似於以下內容:

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

讓我假設變量是在名為AppVariables的類中定義的,您可以從任何其他類訪問它們,如下所示:

AppVariables.insert; 

您可以為您的類提供一個公開的靜態屬性,以暴露自身的實例( 單例模式 )。 這樣,您可以在任何地方訪問您的類屬性:

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);

您可以使用靜態變量,以便可以從項目中的任何其他類訪問它們,並且只要服務正在運行,它們就將保留數據。 嘗試類似:

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;} 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM