gpt4 book ai didi

c# - 初始化内联列表

转载 作者:行者123 更新时间:2023-11-30 18:22:26 25 4
gpt4 key购买 nike

执行此操作时出现奇怪的错误:(.net 2.0)

public overrides List<String> getSpaceballs
{
get { return new List<String>() { "abc","def","egh" }; }
}

VS 在 () 之后请求 ;。为什么?

我当然可以做到:

public overrides string[] getSpaceballs
{
get { return new string[] { "abc","def","egh" }; }
}

最佳答案

C# 的 collection initialization syntax仅在版本 3 及更高版本中受支持(既然你提到了 .NET 2.0,我假设你也在使用 C# 2)。这可能有点令人困惑,因为 C# 一直支持类似的数组初始化语法,但实际上并不是一回事。

集合初始化器是一种编译器技巧,它允许您在一个语句中创建和初始化一个集合,如下所示:

var list = new List<String> { "foo", "bar" };

但是这个语句被编译器翻译成这样:

List<String> <>g__initLocal0 = new List<String>();
<>g__initLocal0.Add("foo");
<>g__initLocal0.Add("bar");
List<String> list = <>g__initLocal0;

如您所见,此功能是一种语法糖,可将模式简化为单个表达式。

关于c# - 初始化内联列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33932432/

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