显然我的变量是未分配的?

时间:2015-09-27 12:19:20

标签: c# list class variables unassigned-variable

public Grid (int width, int height, char defaultCharacter) {
    for (int n = 0; n <= height; n++) {
        List<char> aRow;
        for (int i = 0; i <= width; i++) {
            aRow.Add(defaultCharacter);
        }
        this.grid.Add(aRow);
    }
}

这是我的一些代码。 当我在Xamarin Studio上运行它时,它在这些行上给出了一个错误说&#34;使用未分配的本地变量&#39; aRow&#39;&#34;:

  • aRow.Add(defaultCharacter);
  • this.grid.Add(aRow);

此函数位于名为Grid的类中,有一个变量:

List<List<char>> grid = new List<List<char>>();

有关此变量未分配原因的任何想法?

1 个答案:

答案 0 :(得分:0)

您未初始化的变量是aRow。我认为普通人知道它没有价值。所以为了解决这个问题,你应该给它一个值。

正如您应该已经知道的那样,我们使用=运算符为变量赋值。因此,您可以像这样实例化List<char>的新实例:

aRow = new List<char> ();

您可能想在使用之前询问为什么它必须具有值。因为有时变量是null(没有)。让我们假设如果aRow的值为null,会发生什么。 aRow.Add会导致NullReferenceException因为没有

如果不为变量赋值,则编译器不知道它是null还是其他内容。因此,它抱怨。