0
在Unity3D中,我試圖遍歷對象上的所有組件,並獲取它們的變量和值。這是一個不斷拋出異常的代碼:NullReferenceException將數據分配給變量
componentvariables = new ComponentVars[component.GetType().GetFields().Length];
int x = 0;
//Get all variables in component
foreach(FieldInfo f in component.GetType().GetFields()){
componentvariables[x]=new ComponentVars();
componentvariables[x].Vars.Add(f.Name,f.GetValue(component).ToString());
x++;
}
的ComponentVars類是
public class ComponentVars{
public Dictionary<string, string> Vars{get;set;}
}
是的,我知道這是很簡單的,我可以只使用字典的數組,但我打算加入後來更多。
是不斷拋出的錯誤是將部分
componentvariables[x].Vars.Add(f.Name,f.GetValue(component).ToString());
我平時看到的這些變量在哪裏沒有初始化,但我試圖對其進行初始化(如被看見在上面的代碼),我仍然繼續得到一個NullRefEx。
任何人都可以看到我在做什麼錯在這裏?
屬性不會自動地初始化.. 你必須這樣做。正如@ p.s.w.g所述,初始化你的'Vars'屬性。 –
謝謝西蒙,我只是忽略了這一點,它總是我錯過的簡單的事情。 –
可能的重複[什麼是NullReferenceException,我該如何解決它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – LearnCocos2D