У меня есть абстрактный класс с абстрактным свойством, для которого установлены оба параметра: Get и Set. Я знаю, что всегда хочу иметь возможность получить это свойство из производных классов, но в некоторых случаях не имеет смысла устанавливать это свойство в определенных типах производных классы.
Я не могу просто опустить аксессор Set в производном классе (см. Пример кода ниже). Я мог бы переопределить метод доступа set в производных классах, чтобы ничего не делать со значениями, передаваемыми пользователем. Но есть ли другой способ сделать свойство в определенном производном классе доступным только для чтения? В конечном итоге я отображаю эти свойства в сетке свойств и не хочу, чтобы пользователь вводил значения в поле, которое ничего не будет делать. Может быть, я просто приписываю это свойство только для чтения в определенных производных классах?
Кроме того, я действительно лучше не связывался бы ни с одним из дескрипторов типов, чтобы свойства правильно отображались в сетке свойств, такие как переопределение ICustomTypeDescriptor.
public abstract class MyClass
{
public abstract string MyProperty
{
get;
set;
}
}
public abstract class MyDerivedClass
{
public override string MyProperty
{
//VS complains that the Set accessor is missing
get;
}
}