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 に答える