我一定做错了什么
public interface IActor
{
//actor stuff
}
public class BaseShip : IActor
{
//base ship stuff
}
public class PlayerShip: BaseShip
{
//Only the stuff for this particular ship
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用:
IActor player = new PlayerShip();
Run Code Online (Sandbox Code Playgroud)
要么
List<IActor> actors = new List<IActor>(){new PlayerShip()};
Run Code Online (Sandbox Code Playgroud)
我得到无法从[PlayerShip]转换为[IActor]
注意:为简洁起见,剪切代码
我意外地在两个不同的命名空间中定义了接口.没有更多的东西.
你确定这是你的结构吗?我复制并粘贴了你的代码和编译过的动作,并且运行正常.
编辑:
你们需要退一步......接口肯定会传播继承链.你告诉我一个继承的控件没有实现IDisposable?