C#将数组的具体接口实现传递给方法

时间:2019-03-02 19:26:49

标签: c# arrays multidimensional-array interface

假设我有以下方法:

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();

最后将它们传递给方法SingleArray

Single(singleBlock); //ok!
Array(arrayBlock); //compiler error: cannot convert from Block[*,*] to INode[*,*]

我真的不明白为什么我不能做最后的手术。有什么解释吗?

0 个答案:

没有答案