【发布时间】:2013-07-27 15:27:00
【问题描述】:
我在 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 属性。
但是,当我运行程序时,出现以下异常。谁能告诉我为什么会发生这种情况以及如何解决这个问题?
调用的目标已抛出异常。
编辑:我确实在视图模型的构造函数中设置了上面设置器所针对的属性的值。我只需将 CurrentDatabaseManagedSelection 设置为 DatabaseInfo 类的对象即可。
【问题讨论】:
-
我们——至少是我——可能需要更多信息。以下将在基本类结构中毫无问题地工作
set { if (string.Equals(value, Name)) return; _name = value;}。是否可以对属性给出完整的定义,以便我们可以看到它是如何定义的?另外你如何在构造函数中设置它? -
@MechnicalObject 好的,我会更新问题以在一分钟内添加更多信息 :)
-
@Andy 告诉我内部异常。它必须与空引用相关
-
@EhsanUllah 是的,确实如此。请看我的回答。感谢您的帮助:)
-
@Andy 但我想知道为什么 == 没有解决您的问题
标签: c# wpf properties comparison