在我的解決方案中,我有一個Object Class
和一個Copy()
,它將XElement
從一個XML文件複製到另一個。避免靜態變量的解決方案
現在,我遞歸地呼叫Copy()
,因爲我需要發送Objects
,這是目前的XElement
。在此過程中,我提取將更新的特定attribute
的value
。
現在,我發現這樣做的唯一辦法,就是抽取所有這些值並將其存儲在一個static variable
不會所生成的Object
的新實例每次被改變。
所以,基本上我有:
public class Item
{
public XElement Element;
private static readonly List<Tuple<string, string>> Ids = new List<Tuple<string, string>>();
public String Copy(){
//Recursively get all the OldIds from the current Element
//populate the List with oldIds and ""
//generate newId for this
//update List that matches the OldId and put the newId
//Update the Element
//Transfer Element
return newId;
}
}
什麼是避免使用static List
的最佳方式?
謝謝
稱它是**全球**變量可能會引起誤解。在C++中,全局變量不存在於類中,並且在C#中不允許全局變量。您可能想將其稱爲**靜態**變量,以便清楚。 – 2014-09-18 18:35:49