2

在 C# 中,我们经常使用初始化语法,基类的实例使用其继承的子类进行初始化,如下所示:

Control BTN = new Button();

现在我的问题是,这种初始化的正式名称是什么?

4

3 回答 3

6

根据 C# 规范,它被称为带有隐式引用转换的简单赋值

7.16.1 简单赋值

在简单赋值中,右操作数必须是可隐式转换为左操作数类型的类型的表达式。

...

x = y 形式的简单赋值的运行时处理包括以下步骤:

  • ...
  • y 被评估,如果需要,通过隐式转换(第 6.1 节)转换为 x 的类型。

6.1.6 隐式引用转换

隐式引用转换是:

  • ...
  • 从任何类类型 S 到任何类类型 T,只要 S 派生自 T。
于 2012-06-09T17:35:02.220 回答
3

我能想到的最简洁的术语是多态实例化,或多态初始化。这似乎在不写整个句子的情况下捕获了必要的元素。不过,不知道一个正式的术语。

于 2012-06-09T17:35:19.057 回答
0

这不是基类实例初始化。这是通过基类类型的变量初始化和引用该实例的继承类实例。你可以调用它assignment value to variable。没有特别的名字。

于 2012-06-09T17:32:07.023 回答