我刚看到这个
string response = GetResponse();
return response.ToString();
使用该方法是否有任何合理的解释ToString()
?
不,没有。它可用的唯一原因是,因为它来自 Object。(并且 String 继承自 Object)
这没有任何作用,来自 ILSpy:
public override string ToString()
{
return this;
}
但也许他想强制 a NullReferenceException
,尽管那不是最佳做法。
没有区别。没有必要再次将字符串转换为字符串。我认为正确的代码必须如下:
WebResponse response = GetResponse();
return response.ToString();
GetResponse() 返回 WebResponse 对象。
从技术上讲,标记的答案是正确的,但我想在这里的答案中引入多态性的概念。有理由使用 string.ToString,它只是间接的。
考虑以下场景:
string s = "my groovy string";
object o = s; //This or something like this could happen for many reasons but this is an example so don't analyze this simplicity.
Console.Write( o.ToString() ); //We are technically calling string.ToString() leading to the code in Tim's answer where we return this.
ToString
除了在上定义的事实之外Object
,这就是string.ToString
返回自身的原因,并且这是合理的(尽管是迂回的)用于回到核心问题。