如果我的方法在c#.net中返回一个数组,那么返回消息的最佳方法是什么

Jav*_*las 3 .net c# arrays io file

我正在开发一个应用程序,我正在创建一个必须读取文件的方法,但我不知道如果文件不存在,如何返回一个消息,因为我的方法返回一个数组

这是我有的:

MyFile = "C:\\MyFile.txt";

private string[] LoadFile()
{
    string Lines[];
    if (! File.Exist(MyFile))
         //????? <- return a message here!!
    else
       Lines = File.ReadAllLines(MyFile);
    return Lines;
}
Run Code Online (Sandbox Code Playgroud)

我想这样做,是最好的方法吗?

private string[] LoadFile()
{
    string Lines[];
    if (! File.Exist(MyFile))
    {
       Lines[] = new string[1];
       Lines[0] = "File Not Exist";
    }
    else
       Lines = File.ReadAllLines(MyFile);
    return Lines;
}
Run Code Online (Sandbox Code Playgroud)

然后捕获错误消息并打印出来?

验证的最佳方法是什么?

Eri*_*ert 13

大多数给出的答案都不是很好.正确的解决方案是:

private string[] LoadFile()
{
  return File.ReadAllLines(MyFile);
}
Run Code Online (Sandbox Code Playgroud)

故事结局.如果操作失败,它将抛出,抛出的异常将告诉调用者失败的原因.

为什么你不想自己检查文件存在?因为(1)当你检查时文件是否存在,然后在你尝试阅读之前被删除了?这是一种罕见的情况,但它是可能的,所以你必须编写异常处理代码.如果您不得不以任何方式编写异常处理代码,那么为什么要进行检查呢?(2)文件不存在有什么特别之处?您没有检查是否存在任何其他可能的错误情况,例如:文件存在但其他人已将其锁定,文件存在但您无权读取它,该文件存在但它位于网络驱动器和网络上电缆在读取文件中途被拔掉,等等.你打算编写代码来检查所有这些条件吗?您打算如何编写检测未来拔掉网络电缆的代码?

使用异常来检测和处理异常情况.这就是他们的目的.不要自己写任何逻辑; 框架开发人员已经为您编写了它.使用他们的工作,不要重新发明它.