C#提示输入布尔值

时间:2012-02-19 22:59:06

标签: c# boolean

我的搜索空白,或者我只是不明白我找到的结果。我试图提示用户输入一个布尔值,但我希望答案是肯定或否定。如果您需要查看更多代码,请告诉我,但我有提示。

public static bool getBoolInputValue(string inputType)
    {
        bool valid = false;
        bool value = true;
        string inputString = string.Empty;
        do
        {
            inputString = GetInput(inputType);
            if (!(String.IsNullOrEmpty(inputString)))
            {
                valid = bool.TryParse(inputString, out value);
            }
            if (!valid)
                Console.WriteLine("Invalid " + inputType + " try again!");
        } while (!valid);

        return value;
    }

这是我的布尔值的参数。也许这需要更具体一点?

public bool Nitrus
    {
        set { nitrus = value; }
        get { return nitrus; }
    }

感谢您的帮助。我对编程很新,但无法解决这个问题。它确实成功提示,但是我放入框中的答案并不重要,它告诉我它不是正确的格式。

4 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望用户输入“是”,这意味着您拥有True值。如果这是正确的,请跳过所有string.IsNullOrEmptybool.TryParse内容并执行更类似的操作。

//make it ToLower so that it will still match if the user inputs "yEs"
inputString = GetInput(inputType);
if (inputString.ToLower() == "yes")
{
  value = true;
}
else
{
  value = false;
}

//note that the if/else code is the same as directly applying 
// the value from the comparison itself:
// value = inputString.ToLower() == "yes";

// this allows the user to type in "yes" or "y":
// value = inputString.ToLower() == "yes" || inputString.ToLower() == "y";

答案 1 :(得分:0)

您的程序只接受'true'或'false'作为有效的布尔值。如果你想要'是'或'不',那么你需要进行字符串比较。

valid = string.Compare(inputString, "yes", true) == 0 || string.Compare(inputString, "no", true) == 0;

...
value = string.Compare(inputString, "yes", true) == 0;

答案 2 :(得分:0)

Boolean.TryParse仅识别" True"和"错误"。对于"是"和"不'或"开"和"关",你需要编写自己的函数。

答案 3 :(得分:0)

public static bool getBoolInputValue()
{
    bool value;
    bool valid;
    do
    {
        Console.WriteLine("Enter yes or no: ");
        var inputString = Console.ReadLine();
        if (String.IsNullOrEmpty(inputString))
        {
            continue;
        }
        if ( string.Equals(inputString, "yes")
        {
           value = true;
           valid = true;
        }
        else if ( string.Equals(inputString, "no")
        {
           value = false;
           valid = true;
        }

    } while (!valid);

    return value;
}