0

Javaの場合、次のようなものを書くと

Integer i = new Integer(20);

上記の場合、objはヒープに割り当てられます

C#の場合

Int32 i = new Int32();
i=10;

この場合、オブジェクトはスタックに割り当てられます

これらは実装上の違いだけですか、それとももっと多くの違いがありますか?

修正: C#の整数をInt32に変更しました

4

2 に答える 2

3

IntegerC#にはありません。intまたはint32のいずれかであり、どちらも同じです。C#に関しては、「値型はスタックに移動します」と言っているのは正しくないものです。Eric Lippertからのこの記事を見る必要があります: 値型についての真実

編集:コメントに基づく:

Int32とintは同じで、2つは同義語です。

于 2012-07-03T04:36:37.890 に答える
3

C# にはプリミティブではなく構造体があるため、Java でプリミティブをラップする理由の多くは C# には当てはまりません。以下は、構造体を使用でき、プリミティブでは実行できないことの一部です。

  • 彼らには方法があります。たとえば、http: //msdn.microsoft.com/en-us/library/system.int32.aspxは、int32 で使用できるメソッドを示しています。たとえば、文字列への変換はメソッド呼び出しです。
  • これらは汎用データ構造で使用できます。EG List < int > は問題ありません。

ヒープで必要な場合は、ボックス化できます。このリンクはそれを説明していますhttp://msdn.microsoft.com/en-us/library/yz2be5wk.aspx

于 2012-07-03T04:50:16.423 に答える