我在某人的代碼中發現以下幾點:異常的ToString()方法
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
}
ReSharper的是灰化顯示ToString()
調用,它是始終是一個偉大的建議。 這個C#代碼如何在沒有它的情況下工作?將ToString()
隱式調用?
我在某人的代碼中發現以下幾點:異常的ToString()方法
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
}
ReSharper的是灰化顯示ToString()
調用,它是始終是一個偉大的建議。 這個C#代碼如何在沒有它的情況下工作?將ToString()
隱式調用?
如果在字符串中使用了例外...例如"something" + exception.ToString()
或String.Format("... {0}", exception)
,則會調用ToString
而不必顯式調用它。
And ...當你更新你的例子,調用Console.WriteLine()
針對任何對象值,ToString
將被調用。 Here's the documentation,儘可能詳細的,你可能想要的。
我假定某些東西是字符串連接或用作格式化字符串中的參數,那麼是的,ToString
被隱式調用。
UPDATE以下問題UPDATE
控制檯有一個接受object
參數,在這個版本的toString方法被調用的WriteLine過載如果傳遞的實例不爲空 - R#爲意識到這一點,建議選擇更好的過載。
Console.WriteLine has an overload需要一個對象。該對象的ToString
方法在內部調用,因此您無需首先添加ToString
。
您未顯示相關代碼。 – ChaosPandion
取決於你在做什麼。如果它用在string.Format(0或字符串連接 - 那麼是的,當然 –
-1現在:請發佈實際代碼/通過編譯代碼簡化。 –