将对象,构造函数或方法作为参数进行区分

时间:2017-10-13 14:33:09

标签: c# inheritance polymorphism

假设我们有1个类,它实现了Interface1和Interface2(称为I1I2

所以我们有。

实施I1I2

的A类

现在假设我们有一个包含2个构造函数的类B

Public B(I1 Argument);

public B(I2 Argument);

如果我们这样做:

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

将调用哪个构造函数?

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

1 个答案:

答案 0 :(得分:0)

行为没有很好地定义,这就是为什么C#编译器会触发编译错误,他会认为该调用是不明确的

Take a look here

我很确定大多数编译器会抓住它,但无论如何它不是推荐的做法