如何轻松看懂C语言编程?

2026-04-28 06:300阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计981个文字,预计阅读时间需要4分钟。

如何轻松看懂C语言编程?

1.+ 基本概念+官方:协变和逆变都是术语,前者指派生类型比原始类型更具体(更全面),后者则相反(不够全面)。

1. 基本概念

官方:协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型。[MSDN]

公式:

协变:IFoo<父类> = IFoo<子类>;

逆变:IBar<子类> = IBar<父类>;

暂时不理解没关系,您接着往下看。

2. 协变(Covariance)

1) out关键字

对于泛型类型参数,out 关键字可指定类型参数是协变的。 可以在泛型接口和委托中使用 out 关键字。[MSDN]

2) 鲁迅:一张图胜过千言万语(图小看不清,单机鼠标右键 -> 在新标签页中打开图片)

备注:泛型委托的协变原理也是一样的。

3) 什么是协变?

协变就是对具体成员的输出参数进行一次类型转换,且类型转换的准则是 “里氏替换原则”。

3. 逆变(Contravariance)

1) in关键字

对于泛型类型参数,in 关键字可指定类型参数是逆变的。 可以在泛型接口和委托中使用 in 关键字。

阅读全文

本文共计981个文字,预计阅读时间需要4分钟。

如何轻松看懂C语言编程?

1.+ 基本概念+官方:协变和逆变都是术语,前者指派生类型比原始类型更具体(更全面),后者则相反(不够全面)。

1. 基本概念

官方:协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型。[MSDN]

公式:

协变:IFoo<父类> = IFoo<子类>;

逆变:IBar<子类> = IBar<父类>;

暂时不理解没关系,您接着往下看。

2. 协变(Covariance)

1) out关键字

对于泛型类型参数,out 关键字可指定类型参数是协变的。 可以在泛型接口和委托中使用 out 关键字。[MSDN]

2) 鲁迅:一张图胜过千言万语(图小看不清,单机鼠标右键 -> 在新标签页中打开图片)

备注:泛型委托的协变原理也是一样的。

3) 什么是协变?

协变就是对具体成员的输出参数进行一次类型转换,且类型转换的准则是 “里氏替换原则”。

3. 逆变(Contravariance)

1) in关键字

对于泛型类型参数,in 关键字可指定类型参数是逆变的。 可以在泛型接口和委托中使用 in 关键字。

阅读全文