我的印象是,C# 编译器将基于可以隐式转换为的类型隐式键入数组。
编译器 为隐式类型数组生成 No best type found
public interface ISomething {}
public interface ISomething2 {}
public interface ISomething3 {}
public class Foo : ISomething { }
public class Bar : ISomething, ISomething2 { }
public class Car : ISomething, ISomething3 { }
void Main()
{
var obj1 = new Foo();
var obj2 = new Bar();
var obj3 = new Car();
var objects= new [] { obj1, obj2, obj3 };
}
我知道纠正这个问题的方法是声明如下类型:
new ISomething [] { obj1, ...}
但我在这里寻求幕后类型的帮助。