C# 在学校学习代码目前正在做我的一个练习,似乎无法解决这个问题

C# 在学校学习代码目前正在做我的一个练习,似乎无法解决这个问题,c#,C#,目前正在进行创建购物应用程序的练习,目前正在使用程序的签出方法,用户通过基于控制台的简单程序选择付款类型,该程序使用数字选择。获取错误 CS0029无法将int类型隐式转换为string 在代码输入的上下文中是console.readline;当要求用户选择时,用户输入 public void UserInformation() { string input = ""; Console.WriteLine("Please enter your

目前正在进行创建购物应用程序的练习,目前正在使用程序的签出方法,用户通过基于控制台的简单程序选择付款类型,该程序使用数字选择。获取错误 CS0029无法将int类型隐式转换为string

在代码输入的上下文中是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(">");
        }

问题似乎在于你的IF语句是错误的。如果要将字符串输入与2进行比较。需要这样做:

 if (input == "2")

也就是说,首先要显式地将其与字符串(而不是Int)进行比较:比较对象应该使用==,而不是=,因为后者是赋值,而不是比较。第二:你的inout肯定是1,而不仅仅是1。您必须明确地将该输入转换为数字,例如使用convert.ToInt32或int.Parse。您需要将字符串转换为int,并且必须在if条件中使用==而不是=。所以试试:int.TryParseinput,out var value;如果值==1