尝试将bool类型转换为[yY, nN]的char类型



我是c#的新手,我一直在研究这个任务,从用户那里获取多个输入,存储数据,然后以某种格式返回数据。赋值要求的一部分是提示用户输入Y或N,同时它也接受Y或N。是无绳的吗?[Y或N]:

我试过使用Convert.ToChar(Console.ReadLine().ToLower());,但我一直收到

不能隐式地将char转换为bool

你可以试试:

var userInput = Console.ReadLine().ToLower();
var cordless = userInput == "y";

var cordless = Console.ReadLine().ToLower() == "y";

它将接受Y/Y为真,否则将为假

Console.Write("Is it cordless? [Y or N]: ");
string userInput = Console.ReadLine();

if (userInput == "Y")
{
hasCord = true;
}
else if (userInput == "y")
{
hasCord = true;
}

看了你的回答,我明白你的问题了。我会创建一个方法,要求一个字符串,并在输入错误时重复问题:

public string AskString(string q, string validAnswers[]){
while(true) {
Console.Write(q);
string input = Console.ReadLine();
if(validAnswers == null){
return input; //if no restriction, every answer is valid
} else {
foreach(string a in validAnswers) {
if(input.Equals(a, StringComparison.OrdinalIgnoreCase)){
return input;
}
}
}
} 
}

然后用它来回答每一个问题:

string drillMake = AskString("make? ", null);
string warranty = AskString("warranty, enter 12,24 or 36? ", new string[] {"12", "24", "36"})
string cordless = AskString("cordless, enter Y or N? ", new string[] {"y", "n"});
bool cordlessBool = cordless.Equals("y", StringComparison.OrdinalIgnoreCase);



相关内容

  • 没有找到相关文章

最新更新