2015-09-27 25 views
-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);

此功能是在類叫做網格,一個變量:

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

上WH任何想法這個變量是未賦值的嗎?

+3

因爲你沒有分配任何東西給它?你認爲'aRow'的價值是什麼? – Lee

+0

好點:P你可以發表這個答案,我可以接受嗎? – ZacG

+1

你真的沒有問這個問題。你的調試器不顯示紅線? –

回答

0

您未初始化的變量是aRow。我認爲一般人都知道它沒有價值。所以爲了解決這個問題,你應該給它一個價值。如你應該已經知道的那樣,我們使用=算子給變量賦值。所以,你可以實例化List<char>一個新的實例是這樣的:

aRow = new List<char>(); 

而且你可能要問,爲什麼你使用它之前,它必須有一個值。因爲有時變量是null(無)。讓我們想象一下如果aRow的值爲空將會發生什麼。 aRow.Add將導致NullReferenceException,因爲它是什麼也沒有

如果您不給變量賦值,編譯器不知道它是null還是別的。因此,它抱怨。