异常的ToString()方法

时间:2013-04-03 16:13:52

标签: c# resharper tostring

我在某些代码中找到了以下代码:

catch (Exception exception)
{
    Console.WriteLine(exception.ToString());
}

Resharper正在淘汰ToString()电话,这一直是一个很好的建议。 没有它,这个C#代码如何工作?会隐式调用ToString()吗?

3 个答案:

答案 0 :(得分:7)

获取对象的

Console.WriteLine has an overload。此对象的ToString方法在内部调用,因此您无需首先添加ToString

答案 1 :(得分:5)

如果在字符串中使用了例外...例如"something" + exception.ToString()String.Format("... {0}", exception),则是,ToString将被调用,而无需您明确地调用它。

并且......当您更新示例时,针对任何对象值调用Console.WriteLine(),将调用ToStringHere's the documentation,尽可能详细地提供详细信息。

答案 2 :(得分:3)

我假设某些内容是字符串连接或用作格式化字符串中的参数,然后是,隐式调用ToString

更新问题更新

Console有一个WriteLine的重载,它接受一个object参数,在这个版本中,如果传递的实例不为null,则调用ToString - R#意识到这一点并建议选择优先的重载