У меня есть базовый класс, обладающий виртуальным свойством:
public virtual string Name { get; set; }
то у меня есть производный класс, который переопределяет только получателя свойства
public override string Name
{
get { return "Fixed Name"; }
}
Проблема в том, что это только переопределяет геттер. Если кто-то называет сеттера, вызывающий вызов базового класса будет вызван, и вызывающий абонент не будет знать, что он неэффективен.
Поэтому я подумал, что сделаю что-то вроде:
public override string Name
{
get { return "Fixed Name"; }
set { throw new Exception(); } //which exception type?
}
Итак, два (связанные вопросы):
- Есть ли лучший образец для меня?
- Если я должен использовать приведенный выше шаблон, какое исключение использовать?
Изменить: некоторые причины, по которым одно исключение было бы предпочтительнее другого, были бы хороши. У моего коллеги и у меня были те же аргументы между NotSupported
и InvalidOperation
.