データ型はプログラミング言語の重要な側面であり、C# には、変数の宣言、メソッドの定義、およびオブジェクトの作成に使用されるいくつかのデータ型が用意されています。この記事では、C# のさまざまなデータ型とそのサブカテゴリ (値、参照、ポインター データ型など) について説明します。
C# にはどのようなデータ型が存在しますか?
C# は 強く型付けされたプログラミング言語 、つまり、すべての変数は特定のデータ型で宣言する必要があり、データ型には 3 つの主なカテゴリがあります。
1: 値のデータ型
値のデータ型は、値をメモリに直接格納するものです。それらはスタックに割り当てられ、小さなデータセットを格納するためによく使用されます。以下は、値のデータ型のサブカテゴリです。
数値データ型
これらのデータ型は、数値の格納に使用されます。数値データ型は、10 進数、整数、浮動小数点数など、いくつかのサブカテゴリに分類されます。
- 整数: これらのデータ型は整数を格納するために使用され、整数のサブカテゴリには、sbyte、byte、short、ushort、int、uint、long、および ulong が含まれます。各整数データ形式が保持できる値の範囲は異なります。
- 浮動小数点数: これらのデータ型は 10 進数の格納に使用され、浮動小数点数のサブカテゴリには float と double が含まれます。 float は最大 7 桁の 10 進数を格納できますが、double は最大 15 桁の 10 進数を格納できます。
- 小数: これらのデータ型は、非常に正確な 10 進整数を格納するために使用されます。 Decimal には、最大 28 桁の 10 進数を格納できます。
ブールデータ型
true または false のみのブール値は、この形式のデータに格納されます。
文字データ型
単一の文字は、このデータ型を使用して格納されます。
例
次のコード例は、C# で値のデータ型を使用する方法を示しています。
システムを使用する;名前空間 ValueDataTypes例
{
クラス プログラム
{
static void メイン ( 弦 [ ] 引数 )
{
int myInt = 5 ;
float myFloat = 3.14f;
double myDouble = 3.14159265359 ;
bool myBool = 真実 ;
char myChar = 「あ」 ;
Console.WriteLine ( '私の整数値は:' + myInt ) ;
Console.WriteLine ( '私のフロート値は:' + マイフロート ) ;
Console.WriteLine ( '私の二重値は: ' + マイダブル ) ;
Console.WriteLine ( '私のブール値は次のとおりです:' + マイブール ) ;
Console.WriteLine ( 「私の性格の価値は:」 + myChar ) ;
}
}
}
この例では、int、float、double、bool、char などのさまざまな値のデータ型の変数を宣言して初期化しました。次に、Console.WriteLine メソッドを使用してこれらの変数の値を出力しました。このプログラムの出力は次のようになります。
2: 参照データ型
参照データ型は、値が格納されるメモリ位置への参照を格納するものです。それらはヒープに割り当てられ、通常は大量のデータを格納するために使用されます。以下は、参照データ型のサブカテゴリです。
クラス
C# では、クラスは、オブジェクトを作成するための青写真を定義する参照型です。
弦
この参照データ型は、テキスト データの格納に使用されます。文字列は参照型ですが、多くの点で値型のように動作します。
配列
このデータ型を使用して、同じ型の値のコレクションを格納できます。配列は参照型ですが、場合によっては値型のように動作することもあります。
インターフェース
インターフェイスは、実装の詳細を提供せずに、一連のメソッド、プロパティ、イベント、およびインデクサーを定義します。
デリゲート
デリゲートを使用すると、メソッドを引数として別のメソッドに渡し、後でデリゲートを介してそのメソッドを呼び出すことができます。
例
使用方法を示すサンプル C# コードを次に示します。 参照データ型 :
システムを使用する;クラス 人
{
公開文字列名;
public int 年齢。
}
クラス プログラム
{
static void メイン ( 弦 [ ] 引数 )
{
人 person1 = 新しい人 ( ) ;
person1.Name = '彼自身' ;
person1.Age = 20 ;
人 person2 = person1;
person2.Age = 30 ;
Console.WriteLine ( person1.名前 + ' は ' + person1.年齢 + 「歳。」 ) ;
Console.WriteLine ( person2.名前 + ' は ' + person2.年齢 + 「歳。」 ) ;
}
}
この例の Person クラスには、string 型の Name と int 型の Age という 2 つの public フィールドがあります。次に、Person クラスの新しいインスタンスを作成し、それを Main メソッドで person1 に割り当てます。 person1 の Name 属性と Age 属性を変更します。
次に、別の参照変数 person2 を作成し、それに person1 の値を割り当てます。次に、person2 の Age プロパティを 30 に変更します。
最後に、person1 と person2 の名前と年齢を出力します。の値を変更することに注意してください。 person2.年齢 の値も変更します。 person1.年齢 、両方の変数が同じものを参照しているため 物体 記憶に。
3: ポインターのデータ型
ポインター データ型は、別の変数のメモリ アドレスを格納するために使用されます。これらは、システム レベルのプログラミングやデバイス ドライバーの開発など、低レベルのプログラミングで使用されます。 . C# では、ポインター データ型は直接使用されません。 、ただし、安全でないコード ブロックで使用できます。以下は、ポインター データ型のサブカテゴリです。
ポインターのデータ型
このデータ型は、別の変数のメモリ アドレスを格納するために使用されます。
の使用を示す例を次に示します。 ポインターのデータ型 ただし、C# では多くの注意が必要です。
システムを使用する;クラス プログラム {
static unsafe void メイン ( ) {
整数値 = 10 ;
整数 * p = & 1つに;
Console.WriteLine ( $ 'num の値: {num}' ) ;
Console.WriteLine ( $ 「数値のアドレス: {(long)p:X}」 ) ;
Console.WriteLine ( $ 「ポインターを使用した num の値: {*p}」 ) ;
Console.ReadLine ( ) ;
}
}
この例では、 unsafe キーワードを使用してポインタの使用を許可しています。 int 型の変数を宣言し、値 10 を指定します。次に、int* 型のポインター変数ポインターを作成し、& 演算子を使用して値のメモリ アドレスを割り当てます。
さらに、 * 演算子を使用してポインターを逆参照することにより、 value に格納されている値にアクセスし、同じ演算子を使用して値を変更することもできます。
ノート: C# でポインターを使用するには、メモリ管理の問題を回避するために特別な注意と注意が必要であるため、必要な場合にのみ注意して使用する必要があります。
結論
C# には、さまざまなタスクに利用できるさまざまなデータ型が用意されています。少量のデータは値データ型を使用して格納され、大量のデータは参照データ型を使用して格納されます。ポインター データ型は低レベル プログラミングで使用され、C# では一般的に使用されません。