gpt4 book ai didi

c# - 在结构中初始化列表

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:32 25 4
gpt4 key购买 nike

我目前有一个包含块列表的匹配结构。

public struct Match{
public List<Block> blocks;
}

当我尝试创建一个新的 Match(在本例中称为 matchData)并将 Blocks 添加到其 Block 列表时,我的编译器输出:
Use of unassigned local variable 'matchData'

我尝试通过这样做来初始化列表:
public struct Match{
public List<Block> blocks = new List<Block>();
}

这导致以下错误:
Structs cannot have instance field initializers

那么我应该如何初始化我的 Match 结构呢?我必须做一个构造函数吗?

最佳答案

来自 MSDN:

It is also an error to initialize an instance field in a struct body.You can initialize struct members only by using a parameterizedconstructor or by accessing the members individually after the structis declared. Any private or otherwise inaccessible members can beinitialized only in a constructor.


http://msdn.microsoft.com/en-us/library/0taef578.aspx
因此,您可以像这样在参数化构造函数中初始化列表:
public struct Match{
public List<Block> blocks;

public Match(List<Block> blocks)
{
this.blocks = blocks;
}
}
或者从外面设置:
Match m = new Match();
m.blocks = new List<Block>();
作为旁注,在这里使用类而不是结构可能会更好。您的使用似乎不适合典型用例,如下所示: http://msdn.microsoft.com/en-us/library/ah19swz4.aspx

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

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