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

时间:2019-01-31 14:40:31

标签: 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 = File.ReadAllLines(file_path).ToList();
    foreach (string line in lines)

    {

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

        return (true);

    }

    return false;
}

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

4 个答案:

答案 0 :(得分:6)

首先阅读文件,然后检查它是否存在。当然,您必须使用其他方式:

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

答案 1 :(得分:1)

尝试一下:

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

答案 2 :(得分:1)

一般情况下(或偏执)案例文件可以在File.Exists检查之后之后出现/分解(创建或删除)。捕获 exception FileNotFoundException)是肯定的,但是较慢方式:

public static bool init_access(string file_path)
{
    try 
    {
        foreach (string item in File
              .ReadLines(file_path)
              .Select((line, index) => $"{index + 1} {line}"))
            Console.WriteLine(item);

        return true;
    }
    catch (FileNotFoundException) 
    {
        return false;
    }
}

答案 3 :(得分:0)

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