C# 如何在Main方法中返回带字符串参数的bool方法

C# 如何在Main方法中返回带字符串参数的bool方法,c#,C#,我创建了一个带有字符串参数的bool方法。值为true时,它工作,值为false时,它给出一个错误。 在main方法中调用bool方法时,它不接受bool方法中的相同字符串参数 public static bool init_access(string file_path) { int counter = 0; file_path = @"C:\Users\waqas\Desktop\TextFile.txt"; List<string> lines = F

我创建了一个带有字符串参数的bool方法。值为true时,它工作,值为false时,它给出一个错误。 在main方法中调用bool方法时,它不接受bool方法中的相同字符串参数

public static bool init_access(string file_path)
{

    int counter = 0;
    file_path = @"C:\Users\waqas\Desktop\TextFile.txt";
    List<string> lines = File.ReadAllLines(file_path).ToList();
    foreach (string line in lines)

    {

        counter++;
        Console.WriteLine(counter + " " + line);
    }
    if (File.Exists(file_path))
    {

        return (true);

    }

    return false;
}
publicstaticboolinit\u访问(字符串文件路径)
{
int计数器=0;
文件路径=@“C:\Users\waqas\Desktop\TextFile.txt”;
List lines=File.ReadAllLines(文件路径).ToList();
foreach(行中的字符串行)
{
计数器++;
控制台写入线(计数器+“”+行);
}
if(File.Exists(文件路径))
{
返回(真);
}
返回false;
}

如果文件确实存在,则应返回true,否则应返回false。

首先读取文件,然后检查它是否存在。当然,您必须使用另一种方式:

public static bool init_access(string file_path)
{
    if (!File.Exists(file_path))
    {
        return false;
    }

    int counter = 0;
    string[] lines = File.ReadAllLines(file_path);
    foreach (string line in lines)    
    {   
        counter++;
        Console.WriteLine(counter + " " + line);
    }

    return true;
}
试试这个:

    public static bool init_access(string file_path)
    {
        if (File.Exists(file_path))
        {
            int counter = 0;
            foreach (string line in File.ReadAllLines(file_path))
            {
                counter++;
                Console.WriteLine(counter + " " + line);
            }

            return true;
        }

        return false;
    }
通常(或偏执)案例文件可以在
文件.Exists
检查之后出现/消失(创建或删除)。捕获异常(
FileNotFoundException
)是肯定的,但速度较慢:


正如Rango所说,是的,您必须首先检查文件是否存在。如果您喜欢较小的解决方案:

public static bool init_access(string file_path)
{
    if (File.Exists(file_path))
    {
        var counter = 0;
        File.ReadAllLines(file_path).ToList().ForEach(x => Console.WriteLine(counter++ + " " + x));

        return true;
    }

    return false;
}

您的代码总是读取同一个文件,因为它存在,所以它总是返回true。如果该文件不退出,那么您读取它是因为``List lines=file.ReadAllLines(file_path).ToList();``在
文件.Exists()之前。因此,你有一个错误是正常的,因为读取一个不存在的文件会抛出一个错误。你可以通过在调试器中单步执行你的代码来找出问题所在。@GabrielLuci:或者甚至只是仔细阅读代码……你能澄清一下“on false it give a error”是什么意思吗-可能只需提供您看到的错误的详细信息(以及它是编译器错误、运行时错误还是其他错误)。此外,问题还可以更详细地说明“它不接受bool方法中的相同字符串参数”。你说它不接受是什么意思?如果一个方法接受一个字符串,那么就接受它的方法而言,该字符串是什么并不重要。。。您能详细说明您遇到的错误或类似错误吗?如果您直接在
foreach
循环中使用它,我更喜欢
File.ReadLines(File\u path)
而不是
File.ReadAllLines(File\u path).ToList()
,它会创建两个不必要的集合。我还希望早点返回,而不是嵌套代码。
public static bool init_access(string file_path)
{
    if (File.Exists(file_path))
    {
        var counter = 0;
        File.ReadAllLines(file_path).ToList().ForEach(x => Console.WriteLine(counter++ + " " + x));

        return true;
    }

    return false;
}