C# - データ型
C#の変数は、次のタイプに分類されます-
- 値のタイプ
- 参照タイプ
- ポインタ型
値のタイプ
値型変数には、値を直接割り当てることができます。クラス System.ValueType から派生します。 .
値の型には直接データが含まれます。例としては、int、char、および float があります。 、それぞれ数字、アルファベット、および浮動小数点数を格納します。 int を宣言するとき 型の場合、システムは値を格納するためにメモリを割り当てます。
次の表に、C# 2010 で使用可能な値の型を示します −
タイプ | 表す | 範囲 | デフォルト値 |
---|---|---|---|
bool | ブール値 | 正誤問題 | いいえ |
バイト | 8 ビット符号なし整数 | 0 ~ 255 | 0 |
文字 | 16 ビット Unicode 文字 | U +0000 から U +ffff | '\0' |
10 進数 | 有効数字 28 ~ 29 桁の 128 ビットの正確な 10 進数値 | (-7.9 x 10 28 7.9 x 10 28 に ) / 10 0 28まで | 0.0M |
ダブル | 64 ビット倍精度浮動小数点型 | (+/-)5.0 x 10 -324 ~ (+/-)1.7 x 10 308 | 0.0D |
フロート | 32 ビット単精度浮動小数点型 | -3.4 x 10 38 + 3.4 x 10 38 に | 0.0F |
int | 32 ビット符号付き整数型 | -2,147,483,648 ~ 2,147,483,647 | 0 |
長い | 64 ビット符号付き整数型 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0L |
sbyte | 8 ビット符号付き整数型 | -128 ~ 127 | 0 |
短い | 16 ビット符号付き整数型 | -32,768 ~ 32,767 | 0 |
uint | 32 ビット符号なし整数型 | 0 ~ 4,294,967,295 | 0 |
ulong | 64 ビット符号なし整数型 | 0 ~ 18,446,744,073,709,551,615 | 0 |
ushort | 16 ビット符号なし整数型 | 0 ~ 65,535 | 0 |
特定のプラットフォームで型または変数の正確なサイズを取得するには、sizeof 方法。式 sizeof(type) オブジェクトまたは型のストレージ サイズをバイト単位で返します。以下は、int のサイズを取得する例です。 任意のマシンでタイプします −
ライブデモusing System; namespace DataTypeApplication { class Program { static void Main(string[] args) { Console.WriteLine("Size of int: {0}", sizeof(int)); Console.ReadLine(); } } }
上記のコードをコンパイルして実行すると、次の結果が生成されます −
Size of int: 4
参照タイプ
参照型には、変数に格納された実際のデータは含まれていませんが、変数への参照が含まれています。
つまり、メモリの場所を参照します。複数の変数を使用すると、参照型はメモリ位置を参照できます。メモリ位置のデータが変数の 1 つによって変更された場合、他の変数は自動的にこの変更を値に反映します。 組み込みの例 参照タイプは次のとおりです:オブジェクト 、動的、 と文字列 .
オブジェクト タイプ
オブジェクト タイプ C# Common Type System (CTS) のすべてのデータ型の究極の基本クラスです。 Object は System.Object クラスのエイリアスです。オブジェクト型には、他の型、値型、参照型、定義済みまたはユーザー定義型の値を割り当てることができます。ただし、値を割り当てる前に、型変換が必要です。
値型がオブジェクト型に変換されるとき、それは ボクシング と呼ばれます 一方、オブジェクト型が値型に変換される場合、それは ボックス化解除 と呼ばれます。 .
object obj; obj = 100; // this is boxing
動的タイプ
動的データ型変数には、任意の型の値を格納できます。これらの型の変数の型チェックは実行時に行われます。
動的型を宣言するための構文は −
dynamic <variable_name> = value;
たとえば、
dynamic d = 20;
動的型は、オブジェクト型変数の型チェックがコンパイル時に行われるのに対し、動的型変数の型チェックは実行時に行われることを除いて、オブジェクト型に似ています。
文字列型
文字列型 任意の文字列値を変数に割り当てることができます。文字列型は System.String クラスのエイリアスです。オブジェクト型から派生します。文字列型の値は、引用符付きと @quoted の 2 つの形式で文字列リテラルを使用して割り当てることができます。
たとえば、
String str = "Tutorials Point";
@quoted 文字列リテラルは次のようになります −
@"Tutorials Point";
ユーザー定義の参照型は、クラス、インターフェイス、またはデリゲートです。これらのタイプについては、後の章で説明します。
ポインターの種類
ポインター型変数は、別の型のメモリ アドレスを格納します。 C# のポインターには、C または C++ のポインターと同じ機能があります。
ポインタ型を宣言する構文は −
type* identifier;
たとえば、
char* cptr; int* iptr;
ポインター型については、「安全でないコード」の章で説明します。
C言語