给出以下内容:
class A : B {}
interface I
{
B TheObject {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我能以某种方式这样做吗?
class C : I
{
public A TheObject {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
请注意,接口具有基类,实现具有子类.
Kle*_*nux 12
试一试
class C : I
{
public A TheObject {get;set;}
B I.TheObject
{
get { return A; }
set { A = value as A; }
}
}
Run Code Online (Sandbox Code Playgroud)
您可能需要根据需要修改B setter.以这种方式实现接口具有以下结果.处理类型为C的变量时,您将无法访问B TheObject.如果需要,您需要声明一个I变量并将其分配给您的C var.以这种方式实现我称为显式实现.
例如
C c = new C();
A a = c.TheObject; // TheObject is an A
I i = c;
B b = i.TheObject;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2748 次 |
| 最近记录: |