02 2022 档案
摘要:C#提供了一组关键字in&out,在泛型接口和泛型委托中,若不使用关键字修饰类型参数T,则该类型参数是不可变的(即不允许协变/逆变转换),若使用in修饰类型参数T,保证“只将T用于输入”,则允许T的逆变转换;若使用out修饰类型参数T,保证“只将T用于输出”,则允许T的协变转换。下面我们解释两个问题
阅读全文
摘要:假设我们有两个类型,Animal和Dog,Dog是Animal的子类,我们定义以下两个集合: List<Animal> List<Dog> 由于Dog是Animal的子类,所以Dog可以隐式转换为Animal,但C#中,List<Dog>无法隐式转换为List<Animal>,List<Dog>与L
阅读全文