2012-06-02 44 views
-2

我越來越對象引用未設置爲

對象引用試圖調用GetPersonName()方法在我的主要方法時不設置到對象

錯誤的實例對象的實例。

任何人可以解釋爲什麼這個錯誤發生?

這是我的代碼。謝謝

//My Class 
class Program 
{ 
    // Main Method 
    static void Main(string[] args) 
    { 
     DMO dmo = GetPersonName(); 
     Console.Write(dmo.PersonArray[0].Name); 
     Console.ReadKey(); 
    } 

    private static DMO GetPersonName() 
    { 
     DMO dmo = new DMO(); 
     dmo.PersonArray[0] = new Person { Name = "XXXXXX" }; // Object reference not set to an instance of an object. 
     return dmo; 
    } 
} 


// My Data Model Object 
public class DMO 
{ 
    private Person[] _personArray; 

    public Person[] PersonArray 
    { 
     get { return _personArray; } 
     set { _personArray = value; } 
    } 
} 

public class Person 
{ 
    private string _name = ""; 

    public string Name 
    { 
     get { return _name; } 
     set { _name = value; } 
    } 
} 
+0

難道是因爲你的類和函數都被命名爲DMO?我會用不同的名字來保證安全。 – sachleen

+4

@sachleen - 你在說什麼? – Oded

+0

糟糕,在閱讀代碼時完全失敗。沒關係我的評論。 – sachleen

回答

3

在你DMO類,你永遠不會實例化_personArray

當實例DMO_personArraynull,所以這段代碼:

dmo.PersonArray[0] 

失敗,因爲dmo.PersonArraynull,你不能訪問任何成員。

您需要實例化整個陣列:

dmo.PersonArray = new Person[] { new Person { Name = "XXXXXX" } }; 
1

這是怎麼一回事,因爲你_personArray數組爲null,這將始終返回錯誤,比如,你可以做的是給它一個默認初始化狀:

private Person[] _personArray = new Person[2]; 
相關問題