【问题标题】:Apparently my variable is unassigned?显然我的变量未分配?
【发布时间】:2015-12-24 19:10:03
【问题描述】:
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&lt;List&lt;char&gt;&gt; grid = new List&lt;List&lt;char&gt;&gt;();

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

【问题讨论】:

  • 因为你没有给它分配任何东西?你觉得aRow的价值是多少?
  • 好点:P 你能把它作为答案发布以便我接受吗?
  • 你真的不必问这个问题。你的调试器没有显示红线?

标签: c# list class variables unassigned-variable


【解决方案1】:

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

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

aRow = new List<char> ();

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

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

【讨论】:

    猜你喜欢
    • 2016-10-04
    • 2015-10-26
    • 1970-01-01
    • 2022-01-09
    • 2021-09-20
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多