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