2016-11-01 10 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; 
関連する問題