C# If(textbox.text=number) 错误
C# If(textbox.text=number) error
我在做一个测验,用户必须在 TextBox
中输入一个数字(例如 4),然后程序会检查输入的数字是否正确。不幸的是,我在这部分代码上遇到了一些问题。
所以目前我有这个代码:
if(textbox1.Text=4)
但是 4
带有下划线并带有错误消息:
cannot implicitly convert type 'int' to 'string'.
麻烦大家帮我看看我的代码有什么问题吗?非常感谢!!
if(textbox1.Text == Convert.ToString(4))
或
if(textbox1.Text == "4")
您正在尝试比较 string
与 int
。
您需要使用if(textbox1.text == "4")
还要注意比较的双 ==
您需要解析为 int
if(Int32.Parse(textbox1.Text) == 4)
由于 textbox1.Text
是 string
类型,您必须 parse:
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) {
...
}
请注意,实现容忍 leading 和 traling spaces(测验中的典型问题):如果用户碰巧输入 "4 "
(尾随 space)答案将是 accepted,前提是 correctAnswer == 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。这是雷克斯测试仪 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");
}
}
}
}
if(textbox1.Text == "4")
{
//Do Something
}
不管怎样,您必须确保这两个值是为了确保您比较的是两个值“==”(不是“=”,除非您想要更改该值)并且两个值相同数据类型
我在做一个测验,用户必须在 TextBox
中输入一个数字(例如 4),然后程序会检查输入的数字是否正确。不幸的是,我在这部分代码上遇到了一些问题。
所以目前我有这个代码:
if(textbox1.Text=4)
但是 4
带有下划线并带有错误消息:
cannot implicitly convert type 'int' to 'string'.
麻烦大家帮我看看我的代码有什么问题吗?非常感谢!!
if(textbox1.Text == Convert.ToString(4))
或
if(textbox1.Text == "4")
您正在尝试比较 string
与 int
。
您需要使用if(textbox1.text == "4")
还要注意比较的双 ==
您需要解析为 int
if(Int32.Parse(textbox1.Text) == 4)
由于 textbox1.Text
是 string
类型,您必须 parse:
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) {
...
}
请注意,实现容忍 leading 和 traling spaces(测验中的典型问题):如果用户碰巧输入 "4 "
(尾随 space)答案将是 accepted,前提是 correctAnswer == 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。这是雷克斯测试仪 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");
}
}
}
}
if(textbox1.Text == "4")
{
//Do Something
}
不管怎样,您必须确保这两个值是为了确保您比较的是两个值“==”(不是“=”,除非您想要更改该值)并且两个值相同数据类型