当目录中没有文件时,我希望避免函数GetListCsvFiles()返回null

本文关键字:函数 GetListCsvFiles null 返回 我希望 文件 | 更新日期: 2023-09-27 18:00:47

当目录中没有文件时,我想避免函数GetListCsvFiles ()返回null。

我可以添加一个测试,但如果可能的话,我想避免。

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;
        }

    }
}

当目录中没有文件时,我希望避免函数GetListCsvFiles()返回null

替换此行:

string[] csvFiles = null;

这个:

string[] csvFiles = new string[0];

这将使默认值成为一个空字符串数组,而不是null。

你可以做:

而不是

return csvFiles;

进行

return csvFiles ?? new string[0];

??是检查dsvFiles是否为null,然后返回,否则返回一个空数组。