我正在尝试从基本构造函数调用覆盖的属性,但我收到 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; }
}
}