c#在convert.todouble为null时执行求和
我是c#在convert.todouble为null时执行求和,c#,C#,我是C#新手,我想执行以下求和操作,而不是一个或两个文本值返回nullValue alfa = Convert.ToDouble(beta.Text.Replace("°", "")) + Convert.ToDouble(gamma.Text.Replace("°", "")); 文本对象是空的,或者包含一个数字和符号,如37,88°。我会避免做以下事情,因为这不是我想做的: double betaText; double gammaText; if (beta.Text != "") {
C#
新手,我想执行以下求和操作,而不是一个或两个文本值返回null
Value
alfa = Convert.ToDouble(beta.Text.Replace("°", "")) + Convert.ToDouble(gamma.Text.Replace("°", ""));
文本对象是空的,或者包含一个数字和符号,如37,88°
。我会避免做以下事情,因为这不是我想做的:
double betaText;
double gammaText;
if (beta.Text != "")
{
betaText = Convert.ToDouble(beta.Text.Replace("°", ""));
}
if (gamma.Text != "")
{
gammaText = Convert.ToDouble(gamma.Text.Replace("°", ""))
}
alfa = betaText + gammaText;
我也要避免做这样的事情,因为我只想做一个和,就像我在一行的顶部做的一样
我该怎么办
if (double.TryParse(beta.Text.Replace("°", ""), out betaText))
{
}
if (double.TryParse(gamma.Text.Replace("°", ""), out gammaText))
{
}
alfa = betaText + gammaText;
提前感谢您的建议
干杯我想您可以使用三元运算符:
double sum =
(beta.Text == string.Empty ? 0 : Convert.ToDouble(beta.Text.Replace("°", ""))) +
(gamma.Text == string.Empty ? 0 : Convert.ToDouble(gamma.Text.Replace("°", "")));
这会将空字符串视为0
如您所愿,可以将其折叠为一行
但是,我认为您将整个内容缩减为一行是在牺牲可读性
我建议您将这个复杂的逻辑提取到一个方法中,然后调用该方法:
int sum = SumOfDegreesString(beta.Text, gamma.Text);
private static double SumOfDegreesString(string s1, string s2) {
double a = 0, b = 0;
double.TryParse(s1.Replace("°", ""), out a);
double.TryParse(s2.Replace("°", ""), out b);
return a + b;
}
是“beta”和“伽玛”文本框吗?@ OrcCiOnBuluNo如果你认为我的答案回答你的问题,请考虑通过点击那个标记来接受它!我忘了说,如果一个值是空的,它必须被指定为“0”,因为我必须以任何形式求和case@orecchionebruno所以如果只有一个值是空的,你希望和是另一个值吗?所以我应该使用OR来代替AND运算符