1

我在 C# 中有一个自定义类的属性,我已经覆盖了设置器。我想比较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 类的一个对象来做到这一点。

4

1 回答 1

0

我想我可能已经找到了问题......好吧,我已经解决了!

该问题CurrentDatabaseManaged尚未初始化,因此与null我尝试设置上述属性时相同。我通过在 setter 方法中添加一个 try..catch 发现了这一点,并为它创建了一个新字符串CurrentDatabaseManaged.Name- 堆栈跟踪指向该行。

希望这对将来的其他人有所帮助。

于 2013-07-27T16:09:19.653 回答