为什么我会使用Xamarin for Android(MonoAndroid70)获得ArrayTypeMismatchException
,而不使用Desktop .NET(WPF / 4.6)?
public interface IFoo
{
int MyInt { get; }
}
public class Bar : IFoo
{
public int MyInt => 0;
}
测试代码:
ICollection<IFoo> arr1 = new Bar[1] { new Bar() };
ICollection<IFoo> arr2 = new Bar[1] { new Bar() };
ICollection<IFoo>[] a2d = new ICollection<IFoo>[2] { arr1, arr2 };
异常发生在运行时的最后一行。编译器说一切都很好。
修改
以下类型正在运作:
IEnumerable
IEnumerable<T>
ICollection
IList
以下类型不正在运作:
ICollection<T>
IList<T>