У меня есть свойство пользовательского класса в C#, которое я переопределил setter for. Я хочу, чтобы сравнить свойства/в пользовательском классе в инкубаторе, как следующее:Compare value member при настройке свойства
public DatabaseInfo CurrentDatabaseManagedSelection
{
get { return CurrentDatabaseManaged; }
set {
if (String.Equals(value.Name, CurrentDatabaseManaged.Name,StringComparison.OrdinalIgnoreCase))
return;
CurrentDatabaseManaged = DatabaseManagement.ReadDatabase(value.FileName);
}
}
Внутри класса DatabaseInfo, есть стандартная строка свойство называется именем.
Однако, когда я запускаю программу, я получаю следующее исключение. Может ли кто-нибудь сказать мне, почему это происходит и как решить проблему, пожалуйста?
Исключение было выбрано целью вызова.
EDIT: Я устанавливаю значение свойства, для которого установлен сеттер, в конструкторе модели представления. Я делаю это просто, установив CurrentDatabaseManagedSelection
, равный объекту класса DatabaseInfo.
Мы - _at наименее me_ - может потребоваться дополнительная информация. Следующие будут работать без проблем 'set {if (string.Equals (value, Name)) return; _name = value;} 'в базовой структуре класса. Можно ли дать полное определение свойства, чтобы мы могли видеть, как оно определено? Также как вы устанавливаете его в конструкторе? –
@MechnicalObject Хорошо, я обновлю вопрос, чтобы добавить дополнительную информацию за минуту :) – Andy
@ Энди скажу мне внутреннее исключение. Он должен быть связан с нулевой ссылкой – Ehsan