4

我刚看到这个

string response = GetResponse();
return response.ToString();

使用该方法是否有任何合理的解释ToString()

4

4 回答 4

11

不,没有。它可用的唯一原因是,因为它来自 Object。(并且 String 继承自 Object)

于 2012-12-11T13:37:40.277 回答
5

这没有任何作用,来自 ILSpy:

public override string ToString()
{
    return this;
}

但也许他想强制 a NullReferenceException,尽管那不是最佳做法

于 2012-12-11T13:38:33.233 回答
1

没有区别。没有必要再次将字符串转换为字符串。我认为正确的代码必须如下:

WebResponse response = GetResponse();
return response.ToString();

GetResponse() 返回 WebResponse 对象。

于 2012-12-11T13:47:34.053 回答
0

从技术上讲,标记的答案是正确的,但我想在这里的答案中引入多态性的概念。有理由使用 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返回自身的原因,并且这是合理的(尽管是迂回的)用于回到核心问题。

于 2014-04-11T15:27:12.280 回答