C # Вопрос о свойствах от базового класса

StackOverflow https://stackoverflow.com/questions/4411520

  •  08-10-2019
  •  | 
  •  

Вопрос

Похоже, я должен знать это, и я думал, что сделал. У меня есть базовый вид модели. так.

protected bool isValid;
public bool IsValid
{
  get { return isValid; }
  set
  {
    isValid = true;
    this.EventAggregator.GetEvent<ViewModelValidEvent>().Publish(isValid);
  }
}

Проблема, которую я получаю, когда я пытаюсь назначить ISVALD в классе, который получен из него - ошибка компилятора говорит, что только чтение ... Я думал, что защищено было то, что мне нужно сделать, чтобы исправить это не так.

Кроме того - я продолжаю объявить эти частные переменные для всего, когда мне нужен сеттер, чтобы позвонить в RobingPropertyChanged или что-то еще ... Есть ли лучший способ сделать это?

Может кто-то указать мне верное направление? Спасибо!!!

Это было полезно?

Решение

Я подозреваю, что вы пытаетесь использовать isValid На объекте, который не известен (компилятором), чтобы быть экземпляром полученного класса или подкласса производного класса. protected имеет относительно тонкую семантику такую.

Лично я бы побудил вас, чтобы ваши поля были частными, хотя и используют свойства из любого другого класса - даже полученный класс.

Что касается более простого способа реализации свойств - я не думаю, что есть один на самом деле, нет. У вас могут быть тип обертки, но вам все равно нужно создать переменную, чтобы удерживать экземпляр типа обертки, а также доступа к доступу / установленным доступам к прокси в переменной.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top