0

重複の可能性:
ValueTypes はどのように Object (ReferenceType) から派生し、まだ ValueTypes ですか?

私はこのようなコードを書くことができます、

String s = 10.ToString();

ToString() は、その特定のオブジェクトがクラス 'Object' を継承している場合にのみ発生します (もちろん、C# ではすべてのクラスが Object を継承します)。クラス「オブジェクト」も継承して10番ですか。もしそうなら、どのように?

4

2 に答える 2

4

クラス「オブジェクト」も継承して10番ですか。もしそうなら、どのように?

リテラル10は、仕様に従って、コンパイラによって のインスタンスとして解釈されますInt32Int32から継承しobjectます。したがって、10は から継承する型のインスタンスですobject。そのため、 という名前のインスタンス メソッドがありますToString

于 2012-04-05T18:57:58.340 に答える
0

簡単に言うと、リテラルを含むすべてのプリミティブは .NET のオブジェクトであるため、.NET オブジェクトが持つすべてのメソッド (ToString() を含む) を継承します。プリミティブから .NET オブジェクトへのマッピングについては、MSDN のドキュメント ( http://msdn.microsoft.com/en-us/library/ms228360(v=VS.80).aspx ) を参照してください。

于 2012-04-05T18:56:27.563 に答える