System.Type; implicit cast to string

575 views Asked by At

While looking at the System.Type class under the Code Definition Window, I cannot seem to understand how an instance of this class is implicitly cast to string. For example, on the following code:

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

How was the System.Type resulting from GetType() implicitly cast to string?

1

There are 1 answers

3
Jon Skeet On BEST ANSWER

It's not being implicitly cast to string. It's being converted to Object (with the standard implicit reference conversion), and String.Format is formatting it appropriately - by calling ToString in this case.

This is not being done at compile-time. The code you've shown calls the Console.WriteLine(string, object) overload.