Ejemplo n.º 1
0
        public static void T()
        {
            ISalary <PP> s = new BaseSalaryCounter <PP>();
            ISalary <MM> t = new BaseSalaryCounter <MM>();

            PrintSalary(s);
            PrintSalary(t);
        }
Ejemplo n.º 2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            //1. 讓代碼支持協變
            ISalary <Programmer> s = new BaseSalaryCounter <Programmer>();
            ISalary <Manage>     t = new BaseSalaryCounter <Manage>();

            PrintSalary(s);
            PrintSalary(t);

            //2. 為何IList可以用List 進行協變,是因為 =>  IEnumerable<out T>  本身就使用out T
            IList <Programmer> iList = new List <Programmer>();

            PrintPersonName(iList);
        }
        public void Test01()
        {
            ISalary <Programmer> p = new BaseSalaryCounter <Programmer>();

            PrintSalary1(p);
        }