我的搜索空白,或者我只是不明白我找到的结果。我试图提示用户输入一个布尔值,但我希望答案是肯定或否定。如果您需要查看更多代码,请告诉我,但我有提示。
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; }
}
感谢您的帮助。我对编程很新,但无法解决这个问题。它确实成功提示,但是我放入框中的答案并不重要,它告诉我它不是正确的格式。
答案 0 :(得分:2)
如果我理解正确,您希望用户输入“是”,这意味着您拥有True值。如果这是正确的,请跳过所有string.IsNullOrEmpty
和bool.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;
}