.ToString()
クラスのメソッドを呼び出すと、クラスの完全修飾名が返されることがあります。ただし、一部のクラス/構造体(などInt32
)では、オブジェクトに対応する文字列(整数の値)を返します。これは、クラスがメソッドをInt32
オーバーライドし、ToString()
完全修飾名を返すクラスがそれをオーバーライドせず、代わりにbase(Object
's)ToString()
メソッドを呼び出すことを意味しますか?Object.ToString()
実装はクラスの完全修飾名を返すだけですか?
4 に答える
メソッドを呼び出すと
ToString
、呼び出しを受け取ったオブジェクトのランタイム型の完全修飾名が返されることがあります。
正しい。
ただし、 などの一部の型では、レシーバーの値を文字列に変換し
System.Int32
てToString
返します。
正しい。
構造体はメソッドを
System.Int32
オーバーライドしますか?ToString
はい。
ToString
メソッドが完全修飾型名を返す他の型はオーバーライドされませんToString
か?
それはおそらくそうです、はい。もちろん、メソッドをオーバーライドして、オーバーライドするメソッドに基本クラスのメソッドとまったく同じことをさせることもできますが、それは少し無意味です。
そのような場合、呼び出しは完全修飾名を返すの実装を呼び出す
ToString
だけですか?System.Object
ToString
正しい。
これがどのように機能するかをしっかりと把握しているようです。私の唯一の修正は、それがclassではなくstructであることに注意することSystem.Int32
です。
http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx
ToString は、.NET Framework の主要な書式設定メソッドです。オブジェクトを表示に適した文字列表現に変換します。(.NET Framework での書式設定のサポートについては、「型の書式設定」を参照してください。)
次の例に示すように、ToString メソッドの既定の実装は、オブジェクトの型の完全修飾名を返します。
Object は .NET Framework のすべての参照型の基本クラスであるため、この動作は ToString メソッドをオーバーライドしない参照型によって継承されます。次の例は、これを示しています。これは、すべての Object メンバーの既定の実装を受け入れる Object1 という名前のクラスを定義します。その ToString メソッドは、オブジェクトの完全修飾型名を返します。