//注意 如果不加out T 会报类型转换错误 private void PrintSalary1(ISalary <Employee> p) { p.Pay(); }
static void PrintSalary(ISalary <Employee> s) //用法正确 { s.Pay(); }
static void PrintSalary <T>(ISalary <T> s) { s.Pay(); }
private void PrintSalary <T>(ISalary <T> p) { p.Pay(); }
/// <summary> /// 042中. 原本不支持這樣呼叫 但是ISalary<out T> 我們增加了Out 使得可以使用斜變 /// </summary> /// <param name="s"></param> void PrintSalary(ISalary <Employee> s) { s.Pay(); }
static void PrintSalary <T>(ISalary <T> s) //泛型参数<T>兼容泛型接口参数T的不可变性 { s.Pay(); s.PayT(); }
static void PrintSalary(ISalary <Employee> s) { s.Pay(); s.PayT(); }