我有一个自定义类的属性,在C#中我已经覆盖了setter。我想比较setter中自定义类的/的属性,如下所示:
public DatabaseInfo CurrentDatabaseManagedSelection
{
get { return CurrentDatabaseManaged; }
set {
if (String.Equals(value.Name, CurrentDatabaseManaged.Name,StringComparison.OrdinalIgnoreCase))
return;
CurrentDatabaseManaged = DatabaseManagement.ReadDatabase(value.FileName);
}
}
在DatabaseInfo类中,有一个名为Name的标准String属性。
但是,当我运行程序时,我得到以下异常。任何人都可以告诉我为什么会这样,请问如何解决这个问题?
调用目标抛出了异常。
编辑:我在视图模型的构造函数中设置上面的setter所用属性的值。我只需将CurrentDatabaseManagedSelection
设置为等于DatabaseInfo类的对象即可。
答案 0 :(得分:0)
想想我可能找到了问题... 好吧,我已经解决了!
问题是CurrentDatabaseManaged
尚未初始化,因此在我尝试设置上述属性时等于null
。我通过在setter方法中添加了try .. catch来创建了这个,并为CurrentDatabaseManaged.Name
创建了一个新的String - 指向该行的堆栈跟踪。
希望将来帮助其他人。