2017-10-13 76 views
-2

让我们假设有1类,实现接口1和接口2(称为I1I2性差异的对象,在构造或方法参数

所以我们有。

实现I1 A类和I2

现在让我们说我们有一个类B有2个构造函数:

Public B(I1 Argument); 

public B(I2 Argument); 

如果我们这样做:

A NewVarA = new A(); 
B NewVar = new B(A); 

其构造会被称为?

以何种顺序评估对象的类型?

+3

为什么你问我们,只需自己测试一下 –

+0

也许C#标记让你错过理解这个问题,我的意思是说一般情况下,我们可以从这种代码期望的行为,是任何常见的做法或只是编译器语言的依赖。 –

回答

0

的行为没有明确定义,这也是为什么C#编译器会触发一个编译错误,他会识别呼叫模棱两可

Take a look here

我真的敢肯定大多数编译器会赶上的是,但无论如何这不是一个推荐的做法

相关问题