在查看代码定义窗口下的System.Type类时,我似乎无法理解如何将此类的实例隐式转换为字符串。例如,在以下代码中:
int foo = 0;
Console.WriteLine("Hi! I'm a type of type {0}", foo.GetType());
GetType() 产生的 System.Type 是如何隐式转换为字符串的?
在查看代码定义窗口下的System.Type类时,我似乎无法理解如何将此类的实例隐式转换为字符串。例如,在以下代码中:
int foo = 0;
Console.WriteLine("Hi! I'm a type of type {0}", foo.GetType());
GetType() 产生的 System.Type 是如何隐式转换为字符串的?
它没有被隐式转换为字符串。它被转换为Object
(使用标准的隐式引用转换),并且正在适当地格式化它——在这种情况下String.Format
通过调用。ToString
这不是在编译时完成的。您显示的代码调用了Console.WriteLine(string, object)
重载。