private void search(object sender, RoutedEventArgs e)
{
if (number.Text < 455)
{
string site;
site = number.Text;
var rs = Application.GetResourceStream(new Uri("def/f" + site + ".html", UriKind.Relative));
StreamReader sr = new StreamReader(rs.Stream);
browser.NavigateToString(sr.ReadToEnd());
}
else
{
MessageBox.Show("Enter Value between 1 to 454");
}
}
我给了
InputScope = “数”
在TextBox中。所以用户不能输入单词。
我已经创建了带有名称的按钮,因此如果按下按钮,则会调用搜索功能。我需要验证用户是否在1到454之间输入了文本。如果是,则应该继续。其他明智的我应该像我上面那样提醒他们。但它显示错误,
Error 1 Operator '<' cannot be applied to operands of type 'string' and 'int'
答案 0 :(得分:1)
您正在比较Text
字符串与整数455
。在比较之前将文本转换为整数并执行此操作。
if (Convert.ToInt32(number.Text) < 455)
这是您的解决方案
int num = 0;
if (int.TryParse(number.Text, out num) && num > 0 && num < 455)
{
string site;
site = number.Text;
var rs = Application.GetResourceStream(new Uri("def/f" + site + ".html", UriKind.Relative));
StreamReader sr = new StreamReader(rs.Stream);
browser.NavigateToString(sr.ReadToEnd());
}
else
{
MessageBox.Show("Enter Value between 1 to 454");
}
答案 1 :(得分:1)
嗯,这条消息应该告诉你什么是错的。 Text
是string
,您将其用作int
。
private void search(object sender, RoutedEventArgs e)
{
int n;
if(int.TryParse(number.Text, out n))
{
if (n < 455)
{
var rs = Application.GetResourceStream(new Uri("def/f" + number.Text + ".html", UriKind.Relative));
StreamReader sr = new StreamReader(rs.Stream);
browser.NavigateToString(sr.ReadToEnd());
}
else
{
MessageBox.Show("Enter Value between 1 to 454");
}
}
}
答案 2 :(得分:0)
您不能保证用户会输入有效的号码,因此这是一种检查方式:
int parsed;
if (int.TryParse(number.Text, out parsed) && parsed < 455)
{
// Logic to execute when valid
}
else
{
MessageBox.Show("Enter Value between 1 to 454");
}
答案 3 :(得分:0)
您应该使用Convert.ToInt32()
或int.TryParse()
将字符串转换为整数以进行比较。你无法直接比较字符串和整数。
答案 4 :(得分:0)
常见的C#问题
int iNumber = -1;
if(int.TryParse(textBoxNumber.Text, out iNumber))
{
// iNumber now have value you can check
// ...
}
else { } // failed to parse string
答案 5 :(得分:0)
应该是这样的:我们应该检查(num&gt; 0&amp;&amp; num&lt; 455)。我们也应该检查-ve值。
int num = -1
if(int.TryParse(number.Text, out num))
{
if (num > 0 && num < 455)
{
//Do here
}
else
{
MessageBox.Show("Enter Value between 1 to 454");
}
}