C# 在学校学习代码目前正在做我的一个练习,似乎无法解决这个问题
目前正在进行创建购物应用程序的练习,目前正在使用程序的签出方法,用户通过基于控制台的简单程序选择付款类型,该程序使用数字选择。获取错误 CS0029无法将int类型隐式转换为string 在代码输入的上下文中是console.readline;当要求用户选择时,用户输入C# 在学校学习代码目前正在做我的一个练习,似乎无法解决这个问题,c#,C#,目前正在进行创建购物应用程序的练习,目前正在使用程序的签出方法,用户通过基于控制台的简单程序选择付款类型,该程序使用数字选择。获取错误 CS0029无法将int类型隐式转换为string 在代码输入的上下文中是console.readline;当要求用户选择时,用户输入 public void UserInformation() { string input = ""; Console.WriteLine("Please enter your
public void UserInformation()
{
string input = "";
Console.WriteLine("Please enter your Name");
string userName = Console.ReadLine();
Console.WriteLine("Please enter your address");
Console.Write(">");
string userAddress = Console.ReadLine();
Console.WriteLine("Please Select payment type");
Console.WriteLine("1. Debit");
Console.WriteLine("2. Credit");
Console.WriteLine("3. Cash on delivery");
input = Console.ReadLine();
Console.Write(">");
if (input = 1)// gives error CS0029 "cannot implicitly convert
type int to string"
{
//Debit
Console.WriteLine($"Your total is {total}");
Console.WriteLine("Please enter your Debit card Number");
string userDebit = Console.ReadLine();
Console.Write(">");
}
else
if (input = 2)
{
//Credit
Console.WriteLine($"Your total is {total}");
Console.WriteLine("Please select card type");
Console.WriteLine("1. Visa");
Console.WriteLine("2. Mastercard");
Console.WriteLine("3. American Express");
string userCredit = Console.ReadLine();
Console.Write(">");
}
问题似乎在于你的IF语句是错误的。如果要将字符串输入与2进行比较。需要这样做:
if (input == "2")
也就是说,首先要显式地将其与字符串(而不是Int)进行比较:比较对象应该使用==,而不是=,因为后者是赋值,而不是比较。第二:你的inout肯定是1,而不仅仅是1。您必须明确地将该输入转换为数字,例如使用convert.ToInt32或int.Parse。您需要将字符串转换为int,并且必须在if条件中使用==而不是=。所以试试:int.TryParseinput,out var value;如果值==1