2011-06-29 44 views
0

我想避免函數GetListCsvFiles()在目錄中沒有文件時返回空值。我想避免函數GetListCsvFiles()在目錄中沒有文件時返回空值

我可以添加一個測試,但是我想盡量避免。

using System; 
using NLog; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 

     private static Logger report = LogManager.GetLogger("EventReport"); 

     static void Main(string[] args) 
     { 
      report.Info("Start Program"); 
      EveryQuotesDB everyQuotesDB = new EveryQuotesDB(); 
      //string[] csvFiles = everyQuotesDB.GetListCsvFiles(@"C:\DirectoryCsvFiles"); 
      string[] csvFiles = everyQuotesDB.GetListCsvFiles(@"C:\DirectoryEmpty"); 

       foreach (string file in csvFiles) 
       { 
        report.Info(file); 
       }; 

      report.Info("End Program"); 
      Console.ReadLine(); 
     } 

    } 
} 



using System.IO; 
using NLog; 

namespace ConsoleApplication1 
{ 
    class EveryQuotesDB 
    { 
     private static Logger report = LogManager.GetLogger("EventReport"); 

     public string[] GetListCsvFiles(string directoryCsvFiles) 
     { 
      string[] csvFiles = null; 

      try 
      { 
       csvFiles = Directory.GetFiles(directoryCsvFiles, "*.csv"); 
      } 
      catch (DirectoryNotFoundException) 
      { 
       report.Fatal("Directory Not Found : " + directoryCsvFiles); 
      } 

      return csvFiles; 
     } 


    } 
} 
+0

那麼,你想要它返回什麼?一個空陣列? – dsolimano

回答

2

替換此行:

string[] csvFiles = null; 

與此:

string[] csvFiles = new string[0]; 

這將使默認值的空字符串數組,而不是空。

+0

坦克。 易於理解。 從一開始就解決問題。 – Pierre8r

2

你可以這樣做:的

代替

return csvFiles; 

return csvFiles ?? new string[0]; 

的?檢查dsvFiles是否爲空然後返回它,否則返回一個空數組。

+0

坦克。 回答最快? 遞歸的答案有輕微的偏好。 – Pierre8r