[英]C# TargetInvocationException - (should not be there?)
我试图在WPF中制作一个简单的应用程序,但遇到了一些异常情况。 我有2个班级:部分班级(用于WPF窗口)和我自己设置的另一个公共班级。 当我尝试访问从WPF窗口类创建的类时,遇到TargetInvocationException,告诉我对象引用未设置为对象的实例。 但是,将导致异常的对象引用设置为对象的实例。
这是我的代码:
public partial class MainWindow : Window
{
CurrentParent CP = new CurrentParent();
public MainWindow()
{
InitializeComponent();
CP.Par.Add("MainCanvas");
}
}
public class CurrentParent
{
private List<string> _Par;
public List<string> Par
{
get { return _Par; }
set { _Par = value; }
}
}
当然,这是在一个名称空间中。 我看不到出现此错误的任何原因,因为我的对象引用CP显然是CurrentParent的实例。
有人对如何解决这个问题有任何想法吗? 提前致谢!
-伊恩
在CurrentParent
领域_Par
是从来没有初始化的,因此CP.Par
为空。 当框架尝试调用Add
时,将引发异常。 您需要初始化_Par
:
public class CurrentParent
{
private List<string> _Par = new List<string>();
public List<string> Par
{
get { return _Par; }
set { _Par = value; }
}
}
您没有在CurrentParent类中实例化_Par成员。 这应该可以解决您的问题:
public class CurrentParent
{
public CurrentParent()
{
this.Par = new List<String>();
}
public List<String> Par { get; set; }
}
请注意,该示例使用自动属性 。 这是一个更详细的示例,可以更好地突出您的问题:
public class CurrentParent
{
public CurrentParent()
{
this._Par = new List<String>();
}
public List<String> Par
{
get { return this._Par; }
set { this._Par = value; }
}
private List<String> _Par;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.