假设我有以下方法:
public void Single(INode node) { ... }
public void Array(INode[,] node) { ... }
INode
是一个简单的界面。现在,我想在名为Block
的新类中实现它。
class Block : INode { ...}
好的,让我们尝试这些方法。我将声明两个变量:
Block singleBlock = new Block();
Block[,] arrayBlock = new Block[2,2];
arrayBlock[0,0] = new Block();
...
arrayBlock[1,1] = new Block();
最后将它们传递给方法Single
和Array
。
Single(singleBlock); //ok!
Array(arrayBlock); //compiler error: cannot convert from Block[*,*] to INode[*,*]
我真的不明白为什么我不能做最后的手术。有什么解释吗?