這是什麼原因引起的:
ClassA da = new ClassA();
如果你每次都實例化一個全新的對象,然後當然你將不得不重新填充該對象的時候。
從哪裏獲得用於填充對象的數據?這些數據是否改變?
如果數據是靜態的,快速和容易的事情嘗試是讓現場靜:
public static IDictionary<string, DataSet> DataDic { get; set; }
然後你只需設置一次,它會保留這些數據。請注意,設置它稍有不同。你不會調用類的一個實例,你調用類類型本身:
ClassA.DataDic = new Dictionary<string, DataSet>();
ClassA.DataDic.Add("Key1",".......");
// ...
這可能是一個顯著的設計變化,這取決於這個數據是如何獲取/使用/ etc中。所以在這個問題的背景下可能會有一些缺點。
另一種選擇是保持它的方式,但重新因子的數據填充到對象的構造函數:
public class ClassA
{
public IDictionary<string, DataSet> DataDic { get; private set; }
public ClassA()
{
DataDic = new Dictionary<string, DataSet>();
DataDic.Add("Key1",".......");
// ...
}
}
這向外保留了類的結構,只是移動的填充將數據發送到代碼中的單個地方。但是,請注意,數據仍爲每個類的新實例重新填充。因此,如果變得數據首先是一個沉重的過程,不應該發生一次以上,那麼你可能不想採用這種方法。
你有任何看待它的優點和缺點。這個問題背後的因素很多。 (注:請注意,我在這段代碼中改變了你的類的大小寫,以大寫字母開頭,這是C#中的慣用標準,請注意,此頁面上的代碼語法突出顯示不會突出顯示你的類名稱作爲類名,C#的標準是希望類能夠被大寫。)
你可以顯示你現在使用的代碼嗎?可能有更好的方法,但我們首先需要了解_current_的方式。 – David 2012-03-27 12:40:25
剛剛更新了示例代碼 – tdjfdjdj 2012-03-27 12:46:21
您的標記看起來不對我。 asp classic是pre.net。 – CodesInChaos 2012-03-27 12:49:06