在C#中,有可能逃脱这个:
interface IImpliedReadOnly
{
int SomeNumber {get;}
}
class Implementation : IImpliedReadOnly
{
private int someNumber = 0;
public int SomeNumber {get{return someNumber;}set{someNumber=value;}}
}
Run Code Online (Sandbox Code Playgroud)
但我找不到在VB中执行此操作的等效方法.如果我在接口ReadOnly中创建属性,实现类必须匹配这些访问权限,并将属性声明为ReadOnly,而不是像C#中那样实现getter和setter.
有没有办法解决?如果没有,为什么VB不允许它?
您的代码在C#中工作,因为C#支持隐式接口实现,VB.NET仅支持显式接口实现.
如果使用显式接口实现实现以下C#示例的修改,则会出现以下错误:
码:
interface IImpliedReadOnly
{
int SomeNumber { get; }
}
class Implementation : IImpliedReadOnly
{
private int someNumber = 0;
int IImpliedReadOnly.SomeNumber
{
get { return someNumber; }
set { someNumber = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
错误1'Test.IImpliedReadOnly.SomeNumber.set'添加了在接口成员'Test.IImpliedReadOnly.SomeNumber'中找不到的访问者
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |