【问题标题】:C# Error (Cannot Implicitly convert type 'string' to 'int') [duplicate]C#错误(无法将类型'string'隐式转换为'int')[重复]
【发布时间】:2015-03-25 14:58:29
【问题描述】:

请帮忙!我不知道如何解决这个问题。我被困在这个问题上已经有一段时间了。这段代码至少应该是什么样子,错误在第 8-10 行

        int intAmountA = 0;
        int intAmountB = 0;
        int intAmountC = 0;
        decimal decPackageA = 0m;
        decimal decPackageB = 0m;
        decimal decPackageC = 0m;
        decimal decTotal = 0m;

        intAmountA = TxtAmountA.Text;
        intAmountB = TxtAmountB.Text;
        intAmountC = TxtAmountC.Text;

        decPackageA = intAmountA * 150;
        decPackageB = intAmountB * 120;
        decPackageC = intAmountC * 90;

        LblPackageA.Text = decPackageA.ToString("c");
        LblPackageB.Text = decPackageB.ToString("c");
        LblPackageC.Text = decPackageC.ToString("c");

        decTotal = decPackageA + decPackageB + decPackageC;


        LblTotal.Text = decTotal.ToString("c");

【问题讨论】:

    标签: c#


    【解决方案1】:

    你会想了解:

    两者都是基本任务,但对编程非常重要。

    你有几种方法:

    intAmount = Convert.ToInt32(txtAmount.Text);
    intAmount = int.Parse(txtAmount.Text);
    

    cast 的最简单方法是上述方法。但是,当可能传递无效的用户信息时,就会出现问题。例如,用户传递example 会导致异常。

    您需要清理数据。因此,您可以尝试以下方法:

    int amount;
    if(int.TryParse(txtAmount.Text, out amount))
    {
         // Properly converted amount to an integer.
    }
    

    另一种方法可能是:

    int amount = txtAmount.Text.Where(d => char.IsDigit(d));
    

    最安全和最常见的是int.TryParse。但这些都是您应该考虑正确处理数据的方法。

    希望这对您有所帮助。

    【讨论】:

      【解决方案2】:

      TxtAmountA.Text 是一个字符串。您正在尝试将变量 intAmountA 设置为字符串值,这是一个整数,因此出现错误。您需要从文本框中的字符串中解析出整数。

      intAmountA = int.Parse(TxtAmountA.Text);
      

      但是,请注意,如果 TxtAmountA.Text 中的内容不能转换为整数,则会出现异常。那是你可以使用条件int.TryParse(string value, out integer);

      【讨论】:

        【解决方案3】:
        intAmountA = TxtAmountA.Text;
        intAmountB = TxtAmountB.Text;
        intAmountC = TxtAmountC.Text;
        

        您正在将字符串类型值分配给 int 类型变量。

        这会将字符串值转换为它们的 int 类型表示。 例如"1" => 1

        intAmountA = int.Parse(TxtAmountA.Text);
        intAmountB = int.Parse(TxtAmountB.Text);
        intAmountC = int.Parse(TxtAmountC.Text);
        

        【讨论】:

          猜你喜欢
          • 2020-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-03
          相关资源
          最近更新 更多