1

在查看代码定义窗口下的System.Type类时,我似乎无法理解如何将此类的实例隐式转换为字符串。例如,在以下代码中:

int foo = 0;
Console.WriteLine("Hi! I'm a type of type {0}", foo.GetType());

GetType() 产生的 System.Type 是如何隐式转换为字符串的?

4

1 回答 1

4

它没有被隐式转换为字符串。它被转换为Object(使用标准的隐式引用转换),并且正在适当地格式化它——在这种情况下String.Format通过调用。ToString

不是在编译时完成的。您显示的代码调用了Console.WriteLine(string, object)重载。

于 2009-11-08T22:50:52.057 回答