【问题标题】:multidimensional array of structs C#多维结构数组 C#
【发布时间】:2016-05-15 10:00:44
【问题描述】:

大家好 :) 我最近开始学习 C# 并想创建扫雷游戏。我有模式,之前在 C++ 和 Java(只是控制台)中完成,在 C# 中似乎也很好。

但是有一个我无法摆脱的错误。

警告 CS0649 字段“Minefield.field”从未分配给,并且将 总是有它的默认值 null

这是我遇到问题的部分代码:

 struct  Field
{
    public int mine;
    public int mines_around;
    public State status;

};

class Minefield
{
    Random rand = new Random();
    const int Rows = 10;
    const int Columns = 10;
    Field[][] field;
    int Difficulty;

    public Minefield(int Diff)//from 1 to 10

我已经看到有创建数组的方法,例如 Field[,] field = new Field[10,10] 但是当我尝试它时,发生了同样的错误。 来自更有经验的 C# 程序员的任何想法?

【问题讨论】:

  • 既然它不是Field[,],而是Field[][],也许Field[][] field = new Field[10][10]; 可能是要走的路?
  • 另外,你可能有兴趣学习the difference between a Field[,] and a Field[][]
  • 这不是错误(只是警告)。我敢肯定,如果您开始使用该字段(在某处访问值),警告将会消失。

标签: c# arrays multidimensional-array


【解决方案1】:

这不是错误,只是从静态代码分析中注意到。一使用它就会消失,例如通过赋值或读取它们。

请记住,虽然 struct 是一种值类型,但结构数组却不是。因此 unline private int a 不会自动分配。

【讨论】:

    猜你喜欢
    • 2010-10-14
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2021-09-22
    相关资源
    最近更新 更多