可能性の重複:
Why do primitive types in C# have their own operations?プリミティブ型にはどのように関数がありますか?
私はC#を学んだし、私は、コードが混乱以下見つける:
int.Parse();
はどのようにプリミティブデータ型は、機能を持つことができますか?
可能性の重複:
Why do primitive types in C# have their own operations?プリミティブ型にはどのように関数がありますか?
私はC#を学んだし、私は、コードが混乱以下見つける:
int.Parse();
はどのようにプリミティブデータ型は、機能を持つことができますか?
プリミティブ型であります実際にはstruct
のオブジェクトはC#。
intの場合は、Int32構造体によって表されます。データ型は、スタックベースまたはヒープベースの変数のいずれかに分類されている.NETの仕様により
良い点を指摘して回答してください。ありがとう。 –
.netフレームワークのプリミティブ型はstructure
です。
intなどの型は、値を含むプリミティブな値型ですが、構造体System.Int32 - メソッドと両方のインスタンスメソッドを含んでいます(myInt.ToString()
、あるいは5.ToString()
)及び静的メソッド(int.Parse()
、System.Int32.Parse()
の省略形である。
'int'は、' System.Int32'の文法砂糖です。 'struct'は、' ObjectType'を継承する 'ValueType'を継承しています。 。 'int'と' System.Int32'は同じバイトコードまでコンパイルします。 'Parse()'と 'TryParse()'は 'Int32'の一部であり、' .ToString() 'は' Object'のものです。 'Int32'構造体は値を保持します。 –
だから、それらはハイブリッドまたは構造体だけですか? –
私がハイブリッドを言ったとき、彼らは両方とも基本的な値型(C言語や他の言語のような)であることを意味しましたが、Integerが本格的なオブジェクトであるJavaの場合と同様、Objectから派生し、 。C#実装は、両方の要素を共有します。 –
:あなたは、実際にint
単語を置くことにより、容易にそれを見ることができます。この区別は、どのように変数が格納されるかが決定されます。スタックベースの変数は値によって格納されます。
あなたの質問に集中して、どのようにint関数を持つことができます。 int、short、decimal、string、double、long ..などのすべての整数データ型を調べると、対応するヒープベースのクラスがあります。
.netコンパイラは、整数型(プリミティブ)を内部的にヒープベースの表現に変換します。
ので、intがのInt32 は短いが、そうで
をINT16となりなります。
BTW、整数型、構造体、列挙型はスタックベースの変数であり、参照としてではなくメモリに直接格納されます。
私は自分の疑問を持っています:**どうしてですか?** – gdoron
@gdoron私の知る限り、オブジェクトと構造変数は(C++/Javaでは)関数を持つことができます。 –
O.k. 'int'は' struct'です... – gdoron