1

intC# には何がありますか? キーワードですか、それとも system.ValueTypesから派生したクラスですか? それがキーワードの場合、次の行はどのようにコンパイルされますか

int i = new int(); // If int is not a class then how does it have a default constructor

Console.WriteLine(i.ToString()); // If int is not a class then how does it have member functions

がクラスの場合int、常に で初期化する必要がないのはなぜnewですか? 次の行はどのようにコンパイルされますか?

int i = 8;
4

3 に答える 3

5

intはCTS 型構造体エイリアスです。System.Int32

Eric Lippert によって投稿された SO の回答を読む -どのように ValueTypes は Object (ReferenceType) から派生し、それでも ValueTypes になりますか?

于 2012-07-21T04:09:54.020 に答える
3

int値型 ( struct)のエイリアスであるキーワードですSystem.Int32

通常の値型なので、その継承はSystem.Object-> System.ValueType->だと思いますSystem.Int32

intは文字列やその他の数値型と同様にリテラル表記を持っているため、 を使用せずにインスタンスを作成できますnew

于 2012-07-21T04:09:46.530 に答える
0

コードをコードで説明するには:

Console.WriteLine(typeof(int) == typeof(Int32)); // Outputs: True
Console.WriteLine(typeof(int).Name); // Outputs: Int32
于 2012-07-21T04:14:28.667 に答える