Ho avuto l'impressione che il compilatore C# digiti implicitamente un array basato su un tipo in cui possono essere tutti convertiti implicitamente.Tipizzazione implicita di array che implementano interfacce
il compilatore genera Nessun miglior tipo trovata per matrice implicitamente tipizzate
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 };
}
So che il modo per correggere questo è quello di dichiarare il tipo come:
new ISomething [] { obj1, ...}
Ma io dopo un sotto le coperte scrivi aiuto qui.
come il motivo per cui il compilatore non cerca di trovare un tipo di corrispondenza? –