Как я могу сделать свойство интерфейса опционально доступным только для чтения в VB.NET? - PullRequest
2 голосов
/ 27 октября 2008

Это продолжение предыдущего вопроса об интерфейсах. Я получил ответ, который мне нравится, но я не уверен, как реализовать его в VB.NET.

Предыдущий вопрос:

Должно ли это свойство быть частью интерфейса моего объекта?

public interface Foo{
  bool MyMinimallyReadOnlyPropertyThatCanAlsoBeReadWrite {get;}
}

Как мне добиться этого с помощью синтаксиса VB.NET? Насколько я знаю, мой единственный вариант - пометить свойство как ReadOnly (я не могу реализовать установщик) или нет (я должен реализовать установщик).

Ответы [ 2 ]

2 голосов
/ 27 октября 2008

Просто определите геттер в одном интерфейсе и создайте второй интерфейс, который имеет как геттер, так и сеттер. Если ваш конкретный класс изменчив, пусть он реализует второй интерфейс. В своем коде, который имеет дело с классом, убедитесь, что он является экземпляром второго интерфейса, приведите его, если так, затем вызовите установщик.

1 голос
/ 27 октября 2008

В VB.NET я бы реализовал это так:

Public Interface ICanBeSecure

    ReadOnly Property IsSecureConnection() As Boolean
End Interface

Public Interface IIsSecureable
    Inherits ICanBeSecure

    Shadows Property IsSecureConnection() As Boolean
End Interface
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...