6

C# コンパイラを使用すると、次のように記述できます。

int k=new Int32();

ただし、値を割り当てることはできません。

2つの質問

1)newヒープ割り当てを作成しません。もしそうなら、スタック<->値のことはどうですか?

2) どうしようもないint k=new Int32();。どのようなシナリオで使用しますか?

4

1 に答える 1

11

すべての構造体(およびint / Int32は構造体)はnew()の使用を許可します。これは、構造体をデフォルト値、つまり構造体のすべてのフィールドでゼロに初期化することを意味します。ほとんどの構造体は不変です-そしてプリミティブは確かに不変です。基本的に、あなたが書いたものは次のものと同じです:

int k=0;

これで多くのことができます。しかし、ゼロのプロパティを変更することはできません。ゼロはゼロですゼロはゼロです。

new必ずしも「ヒープに割り当てる」という意味ではありません。

于 2012-11-24T07:45:30.383 に答える