【发布时间】:2019-10-28 15:48:25
【问题描述】:
目前正在进行一项创建购物应用程序的练习,目前正在研究程序的结帐方法,用户通过一个简单的基于控制台的程序选择他们的付款类型,该程序使用数字选择。得到错误 CS0029“无法将 int 类型隐式转换为字符串”
在代码上下文中“输入”是console.readline();用户在被要求选择时输入的内容。
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(">");
}
【问题讨论】:
-
第一:比较对象应该使用
==,而不是=,因为后者是赋值,而不是比较。第二:您的输入肯定类似于"1",而不仅仅是1。您必须将该输入明确转换为数字,例如通过使用Convert.ToInt32或int.Parse。 -
您需要将字符串转换为 int 并且必须在
if条件下使用==而不是=。所以试试:int.TryParse(input, out var value); if (value == 1)
标签: c#