String.ToString有没有合理的用途?

时间:2012-12-11 13:34:49

标签: c# string object clone tostring

我刚看到这个

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

使用ToString()方法有合理的解释吗?

4 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:5)

这无效,来自ILSpy:

public override string ToString()
{
    return this;
}

但也许他想强迫NullReferenceException,尽管这会not be best-practise

答案 2 :(得分:1)

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

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

GetResponse()返回WebResponse对象。

答案 3 :(得分: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返回自身的原因,而这是合理的(虽然,围绕)使用回到核心问题。