2017-12-13 18 views
0

私はComponentという名前のカスタムクラスを持っています。このクラスには4つの属性が設定されています。私はリストにこのクラスを追加しようとすると、私はオブジェクト参照が設定されていないエラーを取得するプロセスのこのステップで。それをデバッグするには、私はadd関数で問題を抱えています。 私はエラーを理解できますが、この特定の状況で何が間違っているのかわかりませんが、重複した質問ではないと思いますが、この状況を解決する質問へのリンクを受け入れます。オブジェクト参照がカスタムクラスリストのオブジェクトのインスタンスに設定されていません

  List<Components.Component> partList = new List<Components.Component>(); 

     firstUsages = false; 

     Components.Component targetComponent = new Components.Component(); 
     targetComponent.A = 5; 
     targetComponent.B = 8; 
     targetComponent.C = 10; 
     targetComponent.TypeComponent = "Teste"; 

     partList.Add(targetComponent); 

カスタムクラス:

class Component 
{ 
    double a, b, c; 
    string typeComponent; 

    public double A { get => a; set => a = value; } 
    public double B { get => b; set => b = value; } 
    public double C { get => c; set => c = value; } 
    public string TypeComponent { get => typeComponent; set => typeComponent = value; } 


} 
+3

投稿コードを短くしましたか?スニペットから、私は例外は不可能であるべきだと言います。 – Fildor

+0

私はしましたが、コードの残りの部分は、スニペットで提示されたコードとは全く何の関係もありません。 – PeterKima

+0

私はあなたを助けることはできません。あなたが投稿したスニペットはあなたが言及した例外を再現することはできません。 – Fildor

答えて

0

このようにそれを使用します。

partList.Add(new Components.Component 
{ 
    A = 5; 
    B = 8; 
    C = 10; 
    TypeComponent = "Teste"; 
}); 
+0

あなたは正しいです、コードの問題を編集しました。また、Components.Componentがnullオブジェクトでない限り、正常に動作するはずです。 –

+1

はい、それは動作するはずですが、OPのコードも同様です。それらは同等です。あなたの答えは付加価値を提供しません。 – Sefe

+1

私は違うものを手に入れません。それは問題を解決しません – PeterKima

0

はこれをやって試してみてください、

partList.Add(新しいComponents.Component {} targetComponent) ;

メソッドを追加するときは、上記の方法で明示的に初期化する必要があります。

+0

この構文を使用すると、クラスの新しいインスタンスを作成し、新しいインスタンスをクラスの新しいインスタンスに追加するため、スマートではありません。これはまったく何のための二重の仕事であり、同じクラスの二重参照を作成します。リストに値を追加する方が良いでしょう:) –

+0

この構文は意味をなさないものです。以前に作成されたインスタンスは、新しいオブジェクトのイニシャライザに渡されます。それは単にコンパイルされません。 – Sefe

関連する問題