namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string word = "Shazam!";
Console.WriteLine(word.ToString().ToString().ToString().ToString());
Console.ReadKey();
}
}
}
有谁能告诉我为什么我可以多次调用ToString()?好奇,谢谢!
答案 0 :(得分:6)
因为string
本身有ToString()
方法(所有对象都有)。
您首先在ToString()
上调用word
,然后调用该调用的结果,然后调用 调用的结果等。基本上每个后续调用都会作用于前一个的结果。
当然,并不仅限于ToString()
。例如:
int x = new object().ToString().Substring(0, 2).Length;
在新对象上调用ToString()
,然后在返回的字符串上调用Substring
,然后在该子字符串上调用Length
。
答案 1 :(得分:1)
.ToString()
返回一个字符串对象。它还实现了.ToString()
,基本上返回this
。
答案 2 :(得分:1)
当您在对象上应用toSting时,它返回一个对象类型字符串。但它又是一个对象,您可以在其上应用toString方法。 所以你的周期变得无限。 因为每件新事物都会成为一个对象。
答案 3 :(得分:0)
好吧,ToString()
方法返回System.String
,System.String
也有ToString()
方法,所以你在从{4}}返回的对象上调用ToString()
上一个ToString()
。
答案 4 :(得分:0)
ToString()只返回一个字符串表示形式作为String对象。 http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx
因此word.ToString()返回表示单词的String对象。 String对象有一个ToString()函数,它返回一个表示String对象的String对象......依此类推。
答案 5 :(得分:0)
ToString()
方法返回表示对象的字符串。
如果调用字符串的ToString()
方法,则返回一个字符串 - 内容与自身相同。如果你多次这样做,你会得到一个基本上引用同一个字符串的其他字符串对象。
答案 6 :(得分:0)
在调用ToString()
时正在发生函数链,因为ToString()
返回一个字符串对象