当我删除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
}
}
Run Code Online (Sandbox Code Playgroud)
从C#语言规范1.2,§7.7.4,加法运算符:
字符串连接:当一个或两个操作数的类型为字符串时,binary +运算符执行字符串连接.如果字符串连接的操作数为null,则替换空字符串.否则,通过调用从类型对象继承的虚拟ToString方法,将任何非字符串参数转换为其字符串表示形式.如果ToString返回null,则替换空字符串.[...]如果没有足够的可用内存来分配结果字符串,则可能抛出System.OutOfMemoryException.
换句话说,+操作数将为您执行ToString转换.
那为什么有必要呢?
这不是必需的.
有些人可能会主观地认为包含它更具可读性,但省略它不仅不会导致任何错误,而且还会产生完全相同的输出.省略ToString呼叫没有功能上的变化.
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |