为什么隐式转换在C#中不起作用

时间:2019-12-25 15:55:29

标签: c# implicit-conversion

请指出 错误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)
    {
        //..
    }
}

0 个答案:

没有答案