关于c#:使用单个元素定义和设置数组属性

Define and set an array property with a single element

本问题已经有最佳答案,请猛点这里访问。

我有一个类,如下所示,它是针对API的,所以它必须是这种格式

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Command
{
    public string response_type { get; set; }
    public string text { get; set; }
    public Attachment[] attachments { get; set; } = new Attachment[] { new Attachment { } };
}

public class Attachment
{
    public string title { get; set; }
    public string title_link { get; set; }
    public string image_url { get; set; }
}

所以它是一个响应类型、文本和附件数组。您可以看到我创建了附件数组并创建了一个空对象。

创建对象时,数组中只能有一个元素。

如果对象已经在构造函数中创建,那么如何在声明对象时设置或添加到数组中?

1
2
3
4
5
Command result = new Command()
{
    text ="Rebooting!",
    attachments[0] = ????
};

我错过了一些简单的东西,尝试了很多组合


要添加到数组中,需要在构造后执行

1
2
3
4
5
6
Command result = new Command()
{
    text ="Rebooting!",
};

result.attachments = new Attachment[2] { result.attachments[0], new Attachment() };

如果您只想设置该值(因为已经创建了数组,并且包含一个实例,所以可以这样做

1
result.attachments[0] = new Attachment();


可以使用数组初始值设定项并添加一个项:

1
2
3
4
5
Command result = new Command()
{
    text ="Rebooting!",
    attachments = new [] {new Attachment {...} }
};

作为补充说明,大多数.NET命名标准都以大写字母开头(Attachments)