Если бы получатели и установщики свойств были независимыми объектами, интерфейс, определяющий установщик свойства и унаследованный от того, который определял получатель свойства, позволял бы семантику чтения-записи. К сожалению, по какой-либо причине ни vb.net, ни C # не позволят этому работать. Вместо этого геттеры - это свойства только для чтения, а сеттеры - свойства только для записи. Если тип определяет свойство только для записи, но наследует свойство только для чтения, vb.net и C # будут видеть только свойство только для записи. Если интерфейс наследует интерфейс, который предоставляет свойство только для чтения, и интерфейс, который предоставляет свойство только для записи, ни одно из свойств не будет использоваться в интерфейсе, поскольку ни vb.net, ни C # не хотят использовать тот факт, что свойство используется чтение или запись, чтобы определить, использовать ли свойство только для чтения или только для записи. Вместо этого оба языка объявят, что свойство является «неоднозначным».
Как уже отмечалось, решение состоит в том, чтобы иметь интерфейс, который наследует интерфейс со свойством только для чтения и реализует свойство чтения-записи. Это скроет другое свойство только для чтения, но если свойство чтения-записи реализовано так, чтобы возвращать те же данные, это не должно быть проблемой. Действительно, способ, которым неявная реализация интерфейса обрабатывается в C #, позволяет реализовывать как интерфейс чтения-записи, так и интерфейс только для чтения, используя один и тот же код (vb, несколько досадно, требует, чтобы свойство «только чтение» кодировалось отдельно от свойство 'read-write').