基本コンストラクターからオーバーライドされたプロパティを呼び出そうとしていますが、System.Reflection.TargetInvovationException( "オブジェクト参照がオブジェクトのインスタンスに設定されていません。")を受け取ります。このエラーがスローされるのはなぜですか?それを回避するために何かできることはありますか?
コンストラクターがオーバーライドされたプロパティを呼び出しただけだと思っていたでしょう。
簡略化した例を次に示します。
// Call that generates exception
var foo = new Foo();
public class Foo : Bah {
public Foo() : base("Foo!") {}
public override string Name {
get { return _name + "123"; }
set { _name = value; }
}
}
public class Bah {
protected string _name;
public Bah(string name) {
Name = name; // << -- Exception here
}
public virtual string Name {
get { return _name; }
set { _name = value; }
}
}