在我看来,如何访问数组对象中的字符串数组?如何从构造函数访问参数?

In my main, how to access string array in an array object? How to access parameter from constructor?

附上UML。我想创建一个 pre 的只读 属性,它是一个字符串数组。当我在 main 中创建一个对象并尝试设置 name 和 pre 时,它​​向我显示错误。

UML

using System;

class Unit
{
    private string _name;
    private string[] _pre;

    public Unit(string name, string[] pre)
    {
        _name = name;
        _pre = new string[2];
    }

    public string Name { get { return _name; } }
    public string[] Pre { get { return _pre; } }
}

class Program
{
    public static void DisplayInfo(Unit[] _u)
    {
        for (int i = 0; i < 2; i++)
        {
            Console.WriteLine(_u[i].Name + _u[i].Pre);
        }
    }

    static void Main(string[] args)
    {
        Unit[] unitarraytest = new Unit[2];

        unitarraytest[0] = new Unit("test 1", "test 3");
        unitarraytest[1] = new Unit("test 2", "test 4");

        DisplayInfo(unitarraytest);
    }
}

你的例子毫无意义。您的 Unit 构造函数为“Pre”获取一个参数,但立即将其丢弃并分配一个新的空字符串数组。大概应该写成

class Unit
{
    public Unit(string name, string[] pre)
    {
        Name = name;
        Pre  = pre;
    }

    public string Name { get;}
    public string[] Pre { get;}
}

创建 Unit 对象时,您实际上需要为“Pre”参数创建一个数组。喜欢new Unit("Name", new []{"pre1", "pre2"});

并且在输出字符串时,您需要访问数组中的各个字符串,或者将它们组合成一个更大的字符串,例如 Console.WriteLine(_u[i].Name + string.Join(" , ", _u[i].Pre));