在ASP.NET中使用C#,我想获取两个文本字段的结果,在按下按钮时添加它们,并显示结果。但是,如果其中一个或两个字段为空,我不希望显示任何结果。
现在,如果两个字段都为空,我会一直得到0。我很确定这是因为两个输入数字(双打)被分配了默认值0.我如何检查空字段?
这是我控制器中的方法。
[HttpPost]
public ActionResult French(FrenchModel model, string returnUrl)
{
switch (model.operation)
{
case 1:
model.result = model.numberOne + model.numberTwo;
break;
case 2:
model.result = model.numberOne - model.numberTwo;
break;
case 3:
model.result = model.numberOne * model.numberTwo;
break;
case 4:
model.result = model.numberOne / model.numberTwo;
break;
}
return View(model);
}
答案 0 :(得分:12)
双打是值类型,因此不能指定为null或“空”。如果您需要此功能,请尝试使用可空双精度型。 Nullable<double>
或double?
应该有效。
请注意,使用可为空的值类型,您需要在使用之前将其检查为null,否则可能导致NullReferenceException
冒险,而double
如果未分配则默认为0
。
答案 1 :(得分:4)
使用Double?
即可为空的Double,它的默认值为null,只有当textbox不为空且你可以解析它时,你才会分配一个值。
答案 2 :(得分:2)
这是确定一个或两个字段是否为空的一种方法。根据您的特定变量需要重构。
string one = txt1.Text;
string two = txt2.Text;
string result = (string.IsNullOrEmpty(one) || string.IsNullOrEmpty(two))
?string.Empty
:double.Parse(one) + double.Parse(two);
答案 3 :(得分:0)
您可以使用if语句:
if (operand1 != 0) { // do something.. }
else { // do something.. }
您也可以为第二个操作数执行此操作。
实施例: https://www.dropbox.com/s/snvonqubqpkue99/Form1.cs?dl=0