2016-11-01 40 views
-2

請參閱下面的C#代碼。C#中全局分配的字符串變量的問題

string file_name; 

if (Directory.GetFiles(targetPath, "*.xls").Length != 0) 
     { 
       var directory = new DirectoryInfo(@"C:\Users\INTEL_ADMIN\Downloads\SubDir"); 
       var myFile = (from f in directory.GetFiles() 
          orderby f.LastWriteTime descending 
          select f).First(); 


       file_name = myFile.Name; 
     } 

MessageBox.Show(file_name); 

我已經初始化字符串file_name全球和初始化if else塊內的價值,並試圖取回塊外相同的值。我得到下面的Build Error。你能解釋爲什麼..?

Usage of unassigned local variable file_name

+1

您需要正確初始化變量:'串FILE_NAME = null',因爲編譯器必須具有保證初始化放心,在你的情況下,它並不保證櫃面如果條件失敗的。 –

+1

將其更改爲'string file_name = string.Empty;' – Equalsk

+1

string file_name =「」; – jdweng

回答

1

局部變量不會被自動初始化。 使用

string file_name = string.Empty;