-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; }
    }
}
4

2 に答える 2

3

あなたのDMOクラスでは、あなたの_personArray.

インスタンス化するときDMO _personArraynull、したがって、このコード:

dmo.PersonArray[0]

そのまま失敗し、そのメンバーのいずれにdmo.PersonArraynullアクセスできません。

配列全体をインスタンス化する必要があります。

dmo.PersonArray = new Person[] { new Person { Name = "XXXXXX" } };
于 2012-06-02T19:29:11.143 に答える
1

This is beacuse your _personArray array is null which will always return that error, what you can do for example is to give it a default initialization like:

private Person[] _personArray = new Person[2];
于 2012-06-02T19:36:17.487 に答える