Есть ли способ для реализации интерфейса, где свойство ReadOnly
определено, чтобы сделать его полным Чтение / Запись Property
?
Представьте себе, что я определяю интерфейс для предоставления ReadOnly
Property
(т. Е. Просто получатель для заданного значения):
Interface SomeInterface
'the interface only say that implementers must provide a value for reading
ReadOnly Property PublicProperty As String
End Interface
Это означает, что разработчики должны принять обязательство предоставить значение. Но я бы хотел, чтобы данный реализатор также позволял установить это значение. В моей голове это означало бы предоставление установщика Property
как часть реализации, делая что-то вроде этого:
Public Property PublicProperty As String Implements SomeInterface.PublicProperty
Get
Return _myProperty
End Get
Set(ByVal value As String)
_myProperty = value
End Set
End Property
но это не скомпилируется, так как для компилятора VB разработчик больше не реализует интерфейс (потому что он больше не ReadOnly
).
Концептуально, это должно работать, потому что, в конце концов, это просто означает Реализовать метод получения из Интерфейса и добавить метод установки. Для «обычных методов» это не составило бы проблем.
Есть ли какой-то способ сделать это, не прибегая к «скрытию интерфейса» или «самодельному» методу SetProperty()
, а стиль, имеющий Property
, ведет себя как свойство чтения / записи в реализациях?
Спасибо!
- ОБНОВЛЕНИЕ -
(Я переместил этот вопрос в отдельный Вопрос )
Мой вопрос действительно: «почему это нельзя сделать в VB.NET», если в C # .NET действует следующее? »:
interface IPublicProperty
{
string PublicProperty { get; }
}
с реализацией:
public class Implementer:IPublicProperty
{
private string _publicProperty;
public string PublicProperty
{
get
{
return _publicProperty;
}
set
{
_publicProperty = value;
}
}
}