gpt4 book ai didi

C# 抽象类,用于数组初始化

转载 作者:行者123 更新时间:2023-11-30 13:34:09 24 4
gpt4 key购买 nike

我们知道我们不能创建抽象类的实例。

我只是想知道,如果我们创建抽象类的数组,它一定会起作用。

例如

public abstract class Creator
{
public abstract void DoSomething();
}

Creator creator = new Creator(); // this will give you compilation error!

Creator[] creator = new Creator[2]; // this will SURE work and will NOT give you compilation error.

谁能告诉我为什么会这样以及为什么它与数组初始化一起工作?

提前致谢。

最佳答案

初始化期间存储在数组中的值将全部为null,因此这实际上并没有创建抽象类的任何实例。数组初始化对应于以下(正确的)行:

Creator creator = null;

创建 AbstractClass[] 类型的数组实际上非常有用,因为您可以在数组中存储对某个具体(继承的)类的引用。例如:

var objects = new object[2];
objects[0] = "Hello";
objects[1] = new System.Random();

例如,您可以遍历 objects 数组并对所有对象调用 ToString()

关于C# 抽象类,用于数组初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4033199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com