.NET C#的跨平台应用开发有哪些优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3932个文字,预计阅读时间需要16分钟。
文章主题的:+……介绍变异的概念,并介绍其相关特性。
0. 文章目的:介绍变体的概念,并介绍其对C#的意义
1. 阅读基础了解C#进阶语言功能的使用(尤其是泛型、委托、接口)
2. 从示例入手,理解变体变体这一概念用于描述存在继承关系的类型间的转化,这一概念并非只适用于C#,在许多其他的OOP语言中也都有变体概念。变体一共有三种:协变、逆变与不变。其中协变与逆变这两个词来自数学领域,但是其含义和数学中的含义几乎没有关系(就像编程语言的反射和光的反射之间的关系)。从字面上来看这三种变体的名字多少有点唬人,但其实际意思并不难理解。广泛来说,三种变体的意思如下:
- 协变(Covariance):允许使用派生程度更大的类型
- 逆变(Contravariance):允许使用派生程度更小的类型
- 不变(Invariance):只允许目标类型
或者换一种更具体的说法:
- 协变(Covariance):若类型A为协变量,则需要使用类型A的地方可以使用A的某个子类类型。
- 逆变(Contravariance):若类型A为逆变量,则需要使用类型A的地方可以使用A的某个基类类型。
- 不变(Invariance):若类型A为不变量,则需要使用类型A的地方只能使用A类型。
本文共计3932个文字,预计阅读时间需要16分钟。
文章主题的:+……介绍变异的概念,并介绍其相关特性。
0. 文章目的:介绍变体的概念,并介绍其对C#的意义
1. 阅读基础了解C#进阶语言功能的使用(尤其是泛型、委托、接口)
2. 从示例入手,理解变体变体这一概念用于描述存在继承关系的类型间的转化,这一概念并非只适用于C#,在许多其他的OOP语言中也都有变体概念。变体一共有三种:协变、逆变与不变。其中协变与逆变这两个词来自数学领域,但是其含义和数学中的含义几乎没有关系(就像编程语言的反射和光的反射之间的关系)。从字面上来看这三种变体的名字多少有点唬人,但其实际意思并不难理解。广泛来说,三种变体的意思如下:
- 协变(Covariance):允许使用派生程度更大的类型
- 逆变(Contravariance):允许使用派生程度更小的类型
- 不变(Invariance):只允许目标类型
或者换一种更具体的说法:
- 协变(Covariance):若类型A为协变量,则需要使用类型A的地方可以使用A的某个子类类型。
- 逆变(Contravariance):若类型A为逆变量,则需要使用类型A的地方可以使用A的某个基类类型。
- 不变(Invariance):若类型A为不变量,则需要使用类型A的地方只能使用A类型。

