C#的协变性和逆变性

来源:互联网 发布:java html生成器 编辑:程序博客网 时间:2024/05/19 04:02
// 协变性。 
IEnumerable<string> strings = new List<string>(); 
// 参数类型派生程度较大实例化对象
// 分配给参数类型派生程度较小的对象引用。
// 分配兼容性被保留。 
IEnumerable<object> objects = strings; 

// 逆变性。           
// 假定我们有这么个方法: 
// static void SetObject(object o) { } 
Action<object> actObject = SetObject; 
// 参数类型派生程度较小的实例化对象
// 分配给参数类型派生程度较大的对象引用。
// 分配兼容性被反转。 
Action<string> actString = actObject; 
0 0
原创粉丝点击