Для реализации IX необходимо предоставить свойство только для чтения;если вы хотите, чтобы YourClass.X был свойством чтения-записи, то только для чтения, который реализует IX, должно быть дано другое имя (например,
Public Property Xreadonly As Integer Implements I.X
. Я не совсем уверен, почему .Net требует использованиятрех типов свойств (только для чтения, только для записи и чтения-записи), вместо того, чтобы просто использовать объект, который объявляет свойство только для чтения и свойство только для записи, как если бы он имел чтение-записьсвойство, но это так. Возможно, это потому, что они хотели убедиться, что переопределение получателя будет следовать тому же пути наследования, что и переопределение установщика, но может показаться, что в некоторых случаях использование получателей и установщиков в качестве отдельных элементов будет болееполезно (в некоторых случаях, например, может быть полезно, чтобы свойство Get возвращало тип, отличный от типа метода Set, но принудительно применяемый к нему; или может быть полезно иметь несколько перегрузок Set;разрешено в .net, хотя).