在 C# 中,我们经常使用初始化语法,基类的实例使用其继承的子类进行初始化,如下所示:
Control BTN = new Button();
现在我的问题是,这种初始化的正式名称是什么?
根据 C# 规范,它被称为带有隐式引用转换的简单赋值。
7.16.1 简单赋值
在简单赋值中,右操作数必须是可隐式转换为左操作数类型的类型的表达式。
...
x = y 形式的简单赋值的运行时处理包括以下步骤:
- ...
- y 被评估,如果需要,通过隐式转换(第 6.1 节)转换为 x 的类型。
6.1.6 隐式引用转换
隐式引用转换是:
- ...
- 从任何类类型 S 到任何类类型 T,只要 S 派生自 T。
我能想到的最简洁的术语是多态实例化,或多态初始化。这似乎在不写整个句子的情况下捕获了必要的元素。不过,不知道一个正式的术语。
这不是基类实例初始化。这是通过基类类型的变量初始化和引用该实例的继承类实例。你可以调用它assignment value to variable
。没有特别的名字。