我刚看到这个
string response = GetResponse();
return response.ToString();
使用ToString()
方法有合理的解释吗?
答案 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
返回自身的原因,而这是合理的(虽然,围绕)使用回到核心问题。