设置属性时比较值成员

时间:2013-07-27 15:27:01

标签: c# wpf properties comparison

我有一个自定义类的属性,在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类的对象即可。

1 个答案:

答案 0 :(得分:0)

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

问题是CurrentDatabaseManaged尚未初始化,因此在我尝试设置上述属性时等于null。我通过在setter方法中添加了try .. catch来创建了这个,并为CurrentDatabaseManaged.Name创建了一个新的String - 指向该行的堆栈跟踪。

希望将来帮助其他人。