验证用户输入并更新循环内的变量

时间:2014-02-27 18:37:35

标签: c# validation loops input path

我正在尝试让用户输入文件路径作为字符串(但出于学习目的,我想将路径视为任何字符串变量,但我愿意接受文件路径验证的建议)。我遇到并且似乎无法弄清楚的问题是一旦inFilepath从Console.ReadLine()更新,它只会出现在连接它的Console.WriteLine()语句中。试图在其他任何地方显示它“”,我知道它表示变量没有更新,因为它的赋值为“”。我相信这是一个范围问题,但我不知道为什么,最后我只需要在与声明相同的范围内访问更新的inFilepath。

string correctPath = "no";
string inFilepath = "";
bool flag = false;
bool inFlag = false;
while (!flag) {
    Console.WriteLine("Please Enter the Tour file path now...");
    inFilepath = Console.ReadLine();
    inFilepath += "\\";
    while (!inFlag) {
        Console.WriteLine("Is this the correct filepath: " + inFilepath + "  ?" +
        "\n Enter 'no' if it is incorrect or 'yes' if it is correct.");
        correctPath = Console.ReadLine();
        if (correctPath == "yes") {
            inFlag = true;
            flag = true;
        }
        else {
            break;
        }
    }
}
Console.WriteLine("path: ", inFilepath);

1 个答案:

答案 0 :(得分:1)

你的问题在这里,你传递了param arg,但没有使用/显示它

Console.WriteLine("path: ", inFilepath);

您需要添加{0},例如

Console.WriteLine("path: {0}", inFilepath);