在C#中,可以摆脱这种情况:
interface IImpliedReadOnly
{
int SomeNumber {get;}
}
class Implementation : IImpliedReadOnly
{
private int someNumber = 0;
public int SomeNumber {get{return someNumber;}set{someNumber=value;}}
}
但是我找不到在VB中执行此操作的等效方法。
如果我在接口ReadOnly中设置该属性,则实现类必须匹配那些访问权限,并且还必须将该属性声明为ReadOnly,而不是像C#中那样能够实现getter和setter。
有没有办法解决?
如果没有,为什么VB不允许呢?
最佳答案
实际上,您可以使用以下VB代码:
Friend Interface IImpliedReadOnly
ReadOnly Property SomeNumber() As Integer
End Interface
Friend Class Implementation
Implements IImpliedReadOnly
Private someNumber_Renamed As Integer = 0
Private ReadOnly Property IImpliedReadOnly_SomeNumber() As Integer Implements IImpliedReadOnly.SomeNumber
Get
Return SomeNumber
End Get
End Property
Public Property SomeNumber() As Integer
Get
Return someNumber_Renamed
End Get
Set(ByVal value As Integer)
someNumber_Renamed=value
End Set
End Property
End Class
关于c# - VB相当于C#“属性(property)违抗”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19194378/