是否有一种方法可以为接口的实现者定义ReadOnly属性,使其成为完整的读/写属性?
原文链接:https://www.f2er.com/vb/255346.html想象一下,我定义了一个接口来提供ReadOnly属性(即,只是给定值的getter):
Interface SomeInterface 'the interface only say that implementers must provide a value for reading ReadOnly Property PublicProperty As String End Interface
这意味着实施者必须承诺提供价值.但我希望给定的实现者也允许设置该值.在我看来,这意味着提供Property的setter作为实现的一部分,做这样的事情:
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).
从概念上讲,这应该可行,因为,最后,它只是意味着从接口实现getter,并添加一个setter方法.对于“正常方法”,这不是问题.
是否有某种方法可以实现它,而不使用“接口隐藏”或“自制”SetProperty()方法,并且具有属性的样式在实现中的行为类似于读/写属性?
谢谢 !
–UPDATE–
(我已经提出这个问题to a separate Question)
我的问题是:“为什么不能在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; } } }