设置属性时比较值成员

本文关键字:成员 比较 属性 设置 | 更新日期: 2023-09-27 18:25:06

我在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属性。

然而,当我运行程序时,我会得到以下异常。有人能告诉我为什么会发生这种情况以及如何解决这个问题吗?

调用的目标引发了异常。

EDIT:我确实在视图模型的构造函数中设置了上面setter所针对的属性的值。我只是通过将CurrentDatabaseManagedSelection设置为DatabaseInfo类的一个对象来实现这一点。

设置属性时比较值成员

我想我可能发现了问题,我解决了!

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

希望这能在未来帮助其他人。