我有包括其他類的列表,像這樣定義了一些自定義類:「對象引用不設置到對象的實例」錯誤
public class Unit
{
public string Name { get; set; }
public List<Group> Contains { get; set; }
}
public class Group
{
public string Name { get; set; }
public Type Type { get; set; }
public int Number { get; set; }
}
public static Type basic_1 = new Type() { Name = "basic_1", Number = 1, Cost = 13 };
的基本思想是你有一個單元,它包含一個組的列表,每個組都有不同的類型。該類型包含特定的屬性,而包含它們的類在本質上是組織性的。
我再嘗試開始建立了,像這樣這些類:
Unit unit1 = new Unit() { Name = "Unit 1" };
Group group1 = new Group() { Name = "Group 1", Number = 10, Type = basic_1 };
unit1.Contains.Add(group1);
但在這裏我收到錯誤(在Add
方法)「不設置到對象的實例對象引用。」在調試器中查看當地人,我可以看到Unit
,Group
和Type
都已成功創建,並且group1
包含所有應該設置的Type
值,但unit1.Contains
爲空。
我在做什麼錯?僅供參考我從來沒有做過這樣的事情,所以我甚至不知道是否有可能,但似乎在此之前工作得很好。
幾乎所有的'NullReferenceException'都是一樣的。請參閱「[什麼是.NET中的NullReferenceException?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)」的一些提示。 –
如果你不想改變你的班級,只需更新列表。 unit1.Contains =新列表(); –
asunrey
我會建議不要寫一個可寫的'Contains'屬性。作爲只讀屬性公開的列表仍然可以從類外部修改(因爲可以在其中添加和刪除東西),這將阻止外部代碼將實例設置爲null或另一個列表。哦,不要將它命名爲「Contains」。 – Crono