创建一个简单的对象数组

本文关键字:简单 对象 数组 一个 创建 | 更新日期: 2023-09-27 18:16:23

一个非常非常简单的c#问题。

我想创建一个普通的小数组,它的类型是另一个类。

位码:

class Program
{
    static void Main(string[] args)
    {
        classA[] test;
        test = new classA[2];
        Console.Write(test[0].getName());

class classA
{
    string name;
    public classA()
    {
        this.name = "zup";
    }
    public string getName()
    {
        return this.name;
    }

创建一个简单的对象数组

当你创建这样一个引用类型的数组时,数组是用null初始化的——没有实际的对象被构造(除了数组本身)。

因此,你需要显式地创建数组的每个元素。

对于您的示例,您需要这样做:

classA[] test;
test = new classA[2];
test[0] = new classA();
test[1] = new classA();

请注意,如果您使用类型,如结构体或基本类型(int, double, char等),则不需要这样做。

您经常编写循环来初始化数组,因此对于您的代码示例:

classA[] test;
test = new classA[2];
for (int i = 0; i < test.Count; ++i)
    test[i] = new classA();

您创建了一个类型为ClassA的数组,但没有初始化元素,因此数组中的元素都是null。要创建一个带有内容的简单测试数组,请使用数组初始化器:

var test = new ClassA[] { new ClassA(), new ClassA() };

你可以按下面的方法做

test = new classA[2].Select(c=>new classA()).ToArray();

调用new classA[2]后,数组中有空项。以上代码将为每个数组项添加新的ClassA对象。现在可以毫无例外地调用Console.Write(test[0].getName());