请指出 错误1 和 错误2 的原因。
Error1 是一个错误,当使用接口作为IList类型时,不会执行隐式转换。
Error2 是一个错误,其中使用带有IComparable参数的函数时,int类型不执行隐式转换。
class Program
{
class Test : IComparable
{
public int CompareTo(object obj)
{
throw new NotImplementedException();
}
}
static void Main(string[] args)
{
var testList = new List<Test>();
var testArr = new Test[]{ };
FunctionList(testList);//***Error1***
FunctionArr(testArr);
var intArr = new int[] {};
FunctionArr(intArr);//***Error2***
}
static void FunctionList(IList<IComparable> comparables)
{
//..
}
static void FunctionArr(IComparable[] comparables)
{
//..
}
}