我试图理解其他人编写的一些代码.因为我不允许发布也很复杂的原始代码,所以我必须简化它
IAData a = SomeProperty;
IBData b = a as IBData;
BData ret = b.B;
Run Code Online (Sandbox Code Playgroud)
where IAData和IBData是两个接口:
public interface IBData
{
BData B { get; set; }
}
public interface IAData
{
void Clear();
}
Run Code Online (Sandbox Code Playgroud)
和
private IAData _aData;
public IAData SomeProperty { get { return _aData; } }
Run Code Online (Sandbox Code Playgroud)
为什么可以a显式转换为b,因为似乎有之间没有继承关系IAData和IBData?
我错过了什么吗?如果我过多地简化代码,请道歉.
谢谢.
一个类可以实现多个接口
interface IA { }
interface IB { }
class C : IA, IB { }
Run Code Online (Sandbox Code Playgroud)
在这种情况下,从一个接口到另一个接口的转换是有效的
IA a = new C();
IB b = a as IB;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |