Нет, это не разрешено. Помните, что код, использующий экземпляр class C
, должен быть в состоянии обработать его как interface A
, что означает, что контракт является открытым геттером и сеттером для свойства X.
Это относится как к наследованию классов, так и к наследованию интерфейса - вы должны следовать договору типа, от которого вы производны.
Если целью кода является то, что свойство X не должно иметь общедоступного установщика, то интерфейс должен быть определен только с помощью { get; }