2015-09-02 104 views
-1

我有這樣的代碼在這裏:ASP.NET - 隱式類型的局部變量必須初始化

var directories; 

if (filePath == "") 
{ 
    directories = Directory.GetDirectories(filePath); 
} 
else 
{ 
    directories = Directory.GetDirectories(myPath); 
} 

但是定義變量,當我得到這個錯誤:

隱式類型的局部變量必須初始化

爲什麼我得到這個錯誤,我將如何去解決它?

回答

2

當使用var時,編譯器不知道directories的類型是什麼,除非在聲明它時進行初始化。如果您稍後進行初始化,則必須聲明一個類型。

string[] directories; 

if (filePath == "") 
{ 
    directories = Directory.GetDirectories(filePath); 
} 
//etc 
0

您不能在沒有賦值的情況下使用var。這是決定var的類型的賦值。只需更改爲聲明特定類型,並且您應該很好。

0

編譯器無法弄清楚directories是什麼類型,因爲你沒有初始化它。

試試這個:

string[] directories; 
0

你應該明白,C#是強類型語言。所以編譯器無法確定編譯時的directories

var關鍵字是在編譯時爲anonymous type綁定引入的。因此,如果您不初始化directories的值,則編譯器不知道實際類型(值或參考號),並且var不在圖片中。

所以,你可以嘗試像

string[] directories; 

if (filePath == "") 
{ 
    directories = Directory.GetDirectories(filePath); 
} 

,或者如果你想使用VAR只有這樣,你可以使用它像這樣:

var directories = (string)null; 

if (filePath == "") 
{ 
    directories = Directory.GetDirectories(filePath); 
} 

您也可以參考MSDN的詳細信息:Implicitly Typed Local Variables