2016-11-01 38 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;