繁体   English   中英

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

[英]C# If(textbox.text=number) error

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

所以目前我有这段代码:

if(textbox1.Text=4)

但是错误消息用下划线标出4

无法将类型'int'隐式转换为'string'。

我可以麻烦大家帮助我找出我的代码有什么问题吗? 非常感谢!!

由于textbox1.Textstring类型,因此您必须解析

   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) {
     ...
   }

请注意,该实现可以容忍前导后继空格(测验中的典型问题):如果用户碰巧输入了"4 "后继空格),则可以接受答案, correctAnswer == 4correctAnswer == 4

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

要么

if(textbox1.Text == "4")

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

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

还要注意双==进行比较

您需要解析为int

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

您正在将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)

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

使用以下代码执行检查。

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

如果不确定用户是要正确提供输入还是没有对模型进行任何验证,则应解析输入,然后检查用户是否输入了4。这是rextester 链接

//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");
            }
        }
    }
}
if(textbox1.Text == "4")
{
//Do Something
}

一种或另一种方式,您必须确保两个值都确保要比较两个值“ ==”(不是“ =”,除非您要更改值),并且两个值都是相同的数据类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM