C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

IListの追加でNullReferenceExceptio

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■95937 / inTopicNo.1)  IListの追加でNullReferenceExceptio
  
□投稿者/ ジェネリック医薬品 (1回)-(2020/10/11(Sun) 12:49:09)

分類:[.NET 全般] 

どなたか教えてください

以下の 「Startup」 の 「wk.XX.Add(wwkk);」の行 で
「System.NullReferenceException: 'Object reference not set to an instance of an object.'
 TESTPro.Startup.xGTO.XX.get が null を返しました。」
が発生してしまいます。( xGTOをnewしている 変数 wk の XCDの値は「1」、XXの値は「null」でした。)
wk の XXのIListに 値を設定できる方法を教えてください。

public class xGTO
{
public string XCD { get; set; }
public IList<xxGTO> XX { get; set; }
}

public class xxGTO
{
public string XXCD { get; set; }
}

public void Start()
{

xGTO wk = new xGTO();
wk.XCD = "1";

xxGTO wwkk = new xxGTO();
wwkk.XXCD = "2";
wk.XX.Add(wwkk);
}


引用返信 編集キー/
■95938 / inTopicNo.2)  Re[1]: IListの追加でNullReferenceExceptio
□投稿者/ 魔界の仮面弁士 (2868回)-(2020/10/11(Sun) 13:14:31)
No95937 (ジェネリック医薬品 さん) に返信
> が発生してしまいます。( xGTOをnewしている 変数 wk の XCDの値は「1」、XXの値は「null」でした。)
> wk の XXのIListに 値を設定できる方法を教えてください。

IList<> インターフェイスに渡すインスタンスは何でも良いのでしょうか?
List<> インスタンスで構わなければ、下記のように書けます。

public void Start()
{
 xGTO wk = new xGTO { XCD = "1", XX = new List<xxGTO> { new xxGTO { XXCD = "2" } } };
}



void Start() 内の呼び出し方を変更したくない場合には、
xGTO クラスの宣言を見直した方が良いでしょう。
そもそも XX は読み書き可能にする必要がなく、readonly プロパティで十分に思えます。

public class xGTO
{
  public string XCD { get; set; }
  public IList<xxGTO> XX { get; } = new List<xxGTO>();
}
引用返信 編集キー/
■95939 / inTopicNo.3)  Re[2]: IListの追加でNullReferenceExceptio
□投稿者/ ジェネリック医薬品 (2回)-(2020/10/11(Sun) 13:15:52)
ありがとうございます。
やってみます。
引用返信 編集キー/
■95940 / inTopicNo.4)  Re[3]: IListの追加でNullReferenceExceptio
□投稿者/ ジェネリック医薬品 (3回)-(2020/10/11(Sun) 13:22:59)
ありがとうございます 解決しました。
解決済み
引用返信 編集キー/
■95941 / inTopicNo.5)  Re[1]: IListの追加でNullReferenceExceptio
□投稿者/ WebSurfer (2114回)-(2020/10/11(Sun) 14:53:51)
マルチポストのようなので他の投稿先の URL を張っておきます。

https://teratail.com/questions/297270
引用返信 編集キー/
■95942 / inTopicNo.6)  Re[2]: IListの追加でNullReferenceExceptio
□投稿者/ WebSurfer (2115回)-(2020/10/11(Sun) 14:54:46)
解決済みマーク
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ