public static void T() { ISalary <PP> s = new BaseSalaryCounter <PP>(); ISalary <MM> t = new BaseSalaryCounter <MM>(); PrintSalary(s); PrintSalary(t); }
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); }