当试图从标签中获取值时,if else语句出现错误,并且布尔错误无效表达式项
本文关键字:错误 表达式 无效 布尔 语句 if 标签 获取 else | 更新日期: 2023-09-27 18:17:13
我有3个文本框,接受来自用户的值,并在按钮上单击我计算总数和平均值。之后,我还想打印成绩,但在文本框中打印的平均值的值,我得到一个无效的表达式错误也">=",即使我使用"=>"。谢谢你。
//print grade
if (label14.Text = => 90)
{
label15.Text = "A";
}
else if (label14.Text = >= 80)
{
label15.Text = "B";
}
else if (label14.Text = >= 70)
{
label15.Text = "C";
}
else if (label14.Text = >= 60)
{
label15.Text = "D";
}
else
label15.Text = "F";
试试
var mark = Convert.ToSingle(label14.Text);
if (mark >= 90)
{
label15.Text = "A";
}
else if (mark >= 80)
{
label15.Text = "B";
}
else if (mark >= 70)
{
label15.Text = "C";
}
else if (mark >= 60)
{
label15.Text = "D";
}
else
label15.Text = "F";
假设label14是您的文本框,label14。Text是一个字符串。不进行解析就不能将其与整数进行比较。至少,您需要使用
int.Parse( label14.Text) >= 90
虽然验证输入是否正确,但对于使应用程序可用有很长的路要走。
label14.Text
为string
,其中90
为int
!
将逻辑与UI分开总是更好的。这使您可以专注于逻辑本身,而不必处理转换文本框和标签。
写一个单独的类public class GradeCalculator
{
public string ScoreToGrade(decimal score)
{
if (score >= 90) return "A";
if (score >= 80) return "B";
if (score >= 70) return "C";
if (score >= 60) return "D";
return "F";
}
public decimal Total(IList<decimals> scores)
{
...
}
public decimal Average(IList<decimals> scores)
{
...
}
}
在您的表单中,您现在可以像这样转换输入
var calculator = new GradeCalculator();
decimal score;
if (Decimal.TryGetValue(label14.Text, out score)) {
label15.Text = calculator.ScoreToGrade(score);
} else {
label15.Text = "Please enter a valid number";
}
如果你给你的控件更好的名字,它会使代码更可读。例:scoreTextBox
、gradeLabel
、calculateButton