当像
这样写时,我得到了很多语法错误(缺少冒号…) IGlobal[] all;
public MainWindow()
{
InitializeComponent();
all = { new ATM(), new Bank()};
}
即使这样也不行:
IGlobal[] all;
all= { new ATM(), new Bank()};
但是只要我把它写在一行(例如在一个方法中)它就工作了:
IGlobal[] all= { new ATM(), new Bank()};
" igglobal "只继承自"IDisposable"。"ATM"one_answers"Bank"继承自" igglobal "和1个自定义抽象类。
这里有什么问题,我该怎么办?
这是语法,其中初始化器和new
不是完全相同的东西,您不能强迫它按照您想要的方式。你所能做的就是显式地告诉数组类型
all = new IGlobal[] { new ATM(), new Bank() };
或者这个也可以,但我建议不要使用它,除非你想故意让你的同事感到困惑。
all = new[] { (IGlobal) new ATM(), new Bank() };