1

クラスに属するdataという名前のオブジェクトがありますが、

[DataContract]
public class names
{
    [DataMember(Name = "code")]
    public int Code { get; set; }

    [DataMember(Name = "message")]
    public string Message { get; set; }

    [DataMember(Name = "values")]
    public values values{ get; set; }
}

ここで、values は独自の変数を持つ別のクラスで、最初は次のコードの実行中に、

names data= new names();
data.values.Name = "";

2 行目を実行すると、null 例外が発生します。

問題は何ですか?実行後でも data.values.Name が null のままである理由

names data= new names();

それに価値を与えるにはどうすればいいですか?

4

4 に答える 4

7

値も初期化します。

names data= new names();
data.values = new values();
于 2013-10-24T14:30:07.700 に答える
3

objectトラブルを求めているだけのクラスに名前を付けないことは別として。初期化していないため、プロパティにアクセスできませんvalues。クラスには、values何かに設定されているコンストラクターが必要です。または、アクセスしようとする前に、何かに値を設定する必要があります。

したがって、次のいずれかです。

[DataContract]
public class object
{
    [DataMember(Name = "code")]
    public int Code { get; set; }

    [DataMember(Name = "message")]
    public string Message { get; set; }

    [DataMember(Name = "values")]
    public values values{ get; set; }

    public object()
    {
        values = new values();
    }
 }

または、次のようにすることもできます。

 object data= new object();
 data.values = new values();
 data.values.Name = "";

文脈がなければ、どちらが自分に合っているかを判断するのは困難です。

于 2013-10-24T14:31:28.010 に答える