将双精度型转换为字符串
本文关键字:字符串 转换 双精度型 | 更新日期: 2023-09-27 18:03:47
当我在下面的方法中删除ToString()
时,我没有得到错误,那么为什么有必要呢?
public string BuildEquation()
{
switch (Choice)
{
case "A":
return mNumber1.ToString() + "+" + mNumber2.ToString();
case "S":
return mNumber1.ToString() + "-" + mNumber2.ToString();
case "M":
return mNumber1.ToString() + "*" + mNumber2.ToString();
default:
return mNumber1.ToString() + "/" + mNumber2.ToString(); // corrected
}
}
来自c#语言规范1.2,§7.7.4,加法运算符:
字符串连接:二进制+操作符执行字符串当一个或两个操作数为字符串类型时进行串联。如果一个字符串连接的操作数为null,空字符串为代替。否则,任何非字符串参数都将被转换为其通过调用虚拟ToString方法实现字符串表示继承自类型对象。如果ToString返回null,一个空字符串被替换。[…系统。可能会抛出OutOfMemoryException没有足够的可用内存来分配结果字符串。
换句话说,+操作数将为您完成ToString转换。
那么为什么它是必要的呢?
没必要。
有些人可能主观地认为包含它更具有可读性,但是省略它不仅不会导致任何错误,而且还会产生完全相同的输出。省略ToString
调用不会改变功能。
将double
和string
连接在一起为您转换。
否则可以用.ToString()
或者使用Convert.ToString(double)方法。http://msdn.microsoft.com/en-us/library/c309e6c9.aspx
这是因为您已经与字符串("+","-"等)连接,这意味着表达式的其余部分被解析为字符串类型。如果您没有连接这些额外的字符串,那么您需要调用ToString()
.