C#If(textbox.text = number)错误

时间:2016-11-03 12:47:17

标签: c# if-statement textbox implicit-conversion

我做了一个测验,用户必须在TextBox中输入一个数字(例如4),然后程序会检查输入的数字是否正确。不幸的是,我在使用这部分代码时遇到了一些麻烦。

所以目前我有这个代码:

if(textbox1.Text=4)

4带有错误消息的下划线:

  

不能隐式地将类型'int'转换为'string'。

我可以帮助您解决我的代码有什么问题吗?非常感谢你!!

7 个答案:

答案 0 :(得分:5)

由于textbox1.Text的类型为string,您必须解析

   int answer;

   //  TryParse - the value entered can be treated as a valid integer 
   //  answer == correctAnswer - the answer provided is a correct one 
   if (int.TryParse(textbox1.Text, out answer) && answer == correctAnswer) {
     ...
   }

请注意,该实现允许前导 traling 空间(quizes中的典型问题):如果用户碰巧输入"4 "(尾随空格)答案将接受,提供correctAnswer == 4

答案 1 :(得分:1)

if(textbox1.Text == Convert.ToString(4))

if(textbox1.Text == "4")

答案 2 :(得分:0)

您正在尝试将stringint进行比较。

您需要使用if(textbox1.text == "4")

还要注意比较的双==

答案 3 :(得分:0)

您需要解析为int

if(Int32.Parse(textbox1.Text) == 4)

答案 4 :(得分:0)

您正在将string(textbox1.Text)与integer(4)进行比较。要完成这项工作,您必须比较相同的数据类型。一些选择:

if(textbox1.Text == "4") 

if(textbox1.Text == 4.ToString())

if(int.Parse(textbox1.Text) == 4)

注意:如果textbox中的文本不是数字,则在最后一个选项中可以获得例外。所以如果你想转换成我建议的整数:

int guessedNumber; 
Int32.TryParse(textbox1.Text, out guessedNumber);
if(guessedNumber == 4)

答案 5 :(得分:0)

Text属性的类型为string,而4为int,因此比较会导致编译时错误。

使用以下代码执行检查。

if (int.Parse(textbox1.Text) == 4)
{
    // do something
}

如果您不确定用户是否要正确提供输入,或者您尚未在模型上设置任何验证,则应解析输入,然后检查用户是否输入4。这是rextester link

//Rextester.Program.Main is the entry point for your code. Don't change it.
//Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5

using System;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var input = "hello 4";
            // var input = "4";
            int number;
            var isNumber = int.TryParse(input, out number);
            if (isNumber)
            {
                if (number == 4)
                {
                    Console.WriteLine("The Number is 4");
                }
                else
                {
                    Console.WriteLine("The Number isn't 4");
                }
            }
            else
            {
                Console.WriteLine("Not a valid number");
            }
        }
    }
}

答案 6 :(得分:0)

if(textbox1.Text == "4")
{
//Do Something
}

不管怎样,你必须确保两个值都是为了确保你比较两个值" ==" (不是" =",除非你想改变这个值)并且两个值都是相同的数据类型