-3
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 上运行它时,它在这些行上给我一个错误,说“使用未分配的局部变量 'aRow'”:

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

这个函数在一个叫做 Grid 的类中,有一个变量:

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

关于为什么未分配此变量的任何想法?

4

1 回答 1

0

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

您应该已经知道,我们使用=运算符为变量赋值。所以你可以像这样实例化一个新的实例List<char>

aRow = new List<char> ();

你可能想问为什么在你使用它之前它必须有一个值。因为有时变量是null(无)。让我们想象一下如果 的值为aRownull 会发生什么。aRow.Add会造成a NullReferenceException,因为它什么都不是。

如果你不给变量一个值,编译器不知道它是null还是别的。因此,它抱怨。

于 2015-09-27T12:39:59.733 回答