7

重複の可能性:
c#:「System.Object」と「object」の違い

私は現在C#を使用していますが、この質問は他の言語にも当てはまる可能性があります。

Object呼び出しと呼び出しの間に違いはありますobjectか?具体的にはDictionary、コンストラクターを使用してのインスタンスを作成していました。

Dictionary<String, Object> foo = new Dictionary...

IDEは自動的に入力しnew Dictionary<string, object>ます。私は戻って最初の宣言を変更しましたが、それは私に不思議に思いました。

  • String大文字またはObject小文字を使用した場合、または副作用はありますstringobject
  • 大文字はクラスを参照していると想定しているので(したがって、クラスメソッドにアクセスできます)、小文字は単に型を参照しています。これは本当ですか?
4

2 に答える 2

16

objectSystem.Objectのキーワード(エイリアス)です。同じことが。にも当てはまりますstring

コンパイルすると、まったく同じものになります。

そのためのMSDNページobjectには、次のように書かれています。

オブジェクトタイプは、.NETFrameworkのSystem.Objectのエイリアスです。オブジェクト型の変数には、任意の型の値を割り当てることができます。

すべてのキーワードの長いリストは、MSDNのC#にあります。

于 2012-07-05T20:47:21.910 に答える
0

object、string、int、shortなどのエイリアスを持つクラスがいくつかあります。それらはすべて、大きな大文字で実際のクラスに内部的にマップされています。

一部のまれなタイプはプラットフォームに依存することに注意してください。たとえば、x86ではIntPtrは32ビット値を格納し、x64では64ビット値を格納します。

これまでのところ、shortは常にInt16にマップされ、longはInt64にマップされていることを私は知っています。

于 2012-07-05T20:49:22.200 に答える