Tôi đã ấn tượng rằng trình biên dịch C# sẽ ngầm loại một mảng dựa trên một kiểu mà tất cả chúng có thể được chuyển đổi hoàn toàn.Nhập một cách ngầm định các mảng thực hiện các giao diện
Trình biên dịch tạo ra Không loại tốt nhất tìm thấy cho mảng ngầm, đánh máy
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 };
}
Tôi biết rằng việc chỉnh sửa này là để khai báo kiểu như:
new ISomething [] { obj1, ...}
Nhưng tôi 'm sau khi dưới một loại bao gồm giúp đỡ ở đây.
như trong lý do tại sao các trình biên dịch không cố gắng tìm một loại phù hợp? –