実現したいこと
C#を一週間程度かじった初心者です。用語やコードの書き方など間違っていたらご指摘頂ければと思います。
あるクラスに定義されたフィールドに、別のクラスを介してアクセスする方法を知りたいです。
例えば、下記のようなコードの場合です。
下記コードではtekito2クラスにtekito1クラス型のフィールド a があります。
また、tekito2クラスとtekito1クラスにはそれぞれプロパティが用意されています。
私がやりたかったことはtekito2クラスをインスタンス化し、このクラス内にあるtekito1クラス型のフィールド a を使ってtekito1にあるフィールド c にそれぞれのプロパティを用いて値を代入することでしたが、NullExceptionエラーで上手く動きませんでした。
以上を踏まえ、2点ほど質問させて頂きたいと思います。
1、今回のコードでのエラーをどのように解消すれば良いでしょうか?
Google検索するとNullアクセスが起こっているようなのですが、なぜこれが問題なのか、どうして起こったのかがそもそも良く分からず、解決方法を見出せませんでした。
2、エラーの件とはあまり関係ないかもしれませんが、フィールドをprivateではなくpublicにするのはC#的には良くないことなのでしょうか?
以上になります。初歩的な質問ですがご教授頂ければと思います。
よろしくお願いいたします。
該当のソースコード
C#
using System; using System.Collections.Generic; public class Hello{ public static void Main(){ var value = new tekito2(); value.Property2 = 20; } } public class tekito1{ int c ; public int Property{ get{ return c; } set{ c = value; } } } public class tekito2{ tekito1 a ; public int Property2{ get{ return a.Property; } set{ a.Property = value; } } }
発生したエラーの内容
Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
at Hello.Main () [0x00007] in /workspace/Main.cs:8
[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at Hello.Main () [0x00007] in /workspace/Main.cs:8
回答1件
あなたの回答
tips
プレビュー