• 欢迎光临~

42:泛型参数兼容泛型接口的不可变性

开发技术 开发技术 2022-12-20 次浏览

协变:让返回值类型返回比声明的类型派生程度更大的类型,就是“协变”。

 

 class Program
    {
        static void Main(string[] args)
        {
            ISalary<Programmer> s = new BaseSalaryCounter<Programmer>();

            PrintSalary(s);

        }
        static void PrintSalary<T>(ISalary<T> s)
        {
            s.Pay();
        }
    }

    interface ISalary<T>
    {
        void Pay();
    }

    class BaseSalaryCounter<T> : ISalary<T>
    {
        public void Pay()
        {
            Console.WriteLine("Pay Base Salary!");
        }
    }

    class Employee
    {
        public string Name { get; set; }
    }

    class Programmer : Employee
    {

    }

    class Manager : Employee
    {

    }

 

程序员灯塔
转载请注明原文链接:42:泛型参数兼容泛型接口的不可变性
喜欢 (0)