gpt4 book ai didi

c# - 如何创建元素自动实例化数组,例如用户自定义类型的int数组?

转载 作者:太空狗 更新时间:2023-10-30 00:07:47 25 4
gpt4 key购买 nike

在声明一个 int 数组时,例如:

int[] test = new int[5];

数组的所有元素都自动初始化为0。无论如何我可以创建一个在创建数组时自动初始化的类,例如 int 数组?

例如:

MyClass[] test2 = new MyClass[5];

仍然需要我调用构造函数;但是使用 int 构造函数被神奇地调用了。

int 类的哪些代码/运算符允许这种行为?

最佳答案

这里的问题是 MyClass 是一个引用类型,所以默认值为 null。因为你没有初始化数组中的对象,所以它们是空的。你可以像这样写一个助手:

T[] InitializeArray<T>(int length) where T : new()
{
T[] array = new T[length];
for (int i = 0; i < length; ++i)
{
array[i] = new T();
}

return array;
}

然后初始化你的数组:

MyClass[] something = InitializeArray<MyClass>(5);

关于c# - 如何创建元素自动实例化数组,例如用户自定义类型的int数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17309989/

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