0

このクラスでは、コンストラクターでを設定elpしています。ElType

elpコンストラクター内では罰金のプロパティにアクセスできますが(// ...ビットは のプロパティにアクセスしている場所です)、別の方法でelpアクセスしようとすると、プログラムが でクラッシュします。elpucp()NullReferenceException

ここで何が間違っているのかわかりませんが、おそらくかなり簡単なことでしょう。

[Serializable]
public class ElBase : RectangleNode
{
    public ElementParameters elp;

    public ElBase(ElementParameters ElType)
    {
        this.elp = ElType;

        // ...
    }

    private void ucp()
    {
        int i = 0;

        if (this.elp.HasInput)
        {
            // ...
        }
    }
4

2 に答える 2

5

また:

  1. elpnull に設定されています。null チェックがない場合は、コンストラクターでも可能です。
  2. HasInputプロパティ ゲッターは、その内部のコードに基づいてスローしていNullReferenceExceptionます。
  3. ああ、親愛なる:elpパブリックにアクセス可能なフィールドです。何でもnullに設定できます。:o これはナンバー 1 のはずですが、だれもパブリックにアクセス可能なフィールドを作成していないため、私はそれを通り過ぎてしまいました。したがって、それは決して問題ではありません。
于 2009-08-06T07:52:39.020 に答える
1

呼び出し元のコードを見ないと何とも言えませんElementParametersが、コンストラクターに渡されたものが NULL か初期化されていないようです。

于 2009-08-06T07:52:08.740 に答える