我有以下问题:
我有接口ILocation,它包括获取功能位置的功能(在2D网格中).并非所有类都可以具有此接口,但这些接口彼此无关(不相互继承等).即具有此接口的类是Person,Item,BuildingBlock ...
现在我有类Location,其中包含变量"block".基本上任何东西都可以存在,只有一个条件:它必须实现接口ILocation.我怎样才能做到这一点?我不知道,哪个类将在此变量中,因此必须将其指定为Object,但我知道,它必须实现ILocation.如何才能做到这一点?
在下面的示例中,我想实现方法Symbol,它位于ILocation接口中.
public class Location :ILocation
{
public int X {get; set;}
public int Y {get; set;}
public Object block;
public Location (int x, int y, Object o)
{
X = x;
Y = y;
block = o;
}
public char Symbol()
{
return block.Symbol();
}
}
Run Code Online (Sandbox Code Playgroud)
这当然会产生错误,因为类Object的实例块不实现ILocation.
那么 - 我怎么能告诉C#,在变量"block"中可以是任何实现ILocation的对象?
谢谢
兹比涅克
将块变量声明为位置:
public ILocation block;
public Location (int x, int y, ILocation o)
{
X = x;
Y = y;
block = o;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |