出版

開発者は、言語のデータ型に関する基本的な知識を身に付けておく必要があります。この記事では、Irina Medvinskaya が C# の定義済み変数の 2 種類、値型と参照型の概要を説明します。
プログラミング言語を使いこなすには、
その言語の可能性と限界を理解するために、その言語が提供するデータ型を深く理解する必要があります。この記事では、開発者がC#のデータ型
をより深く理解
できるように、C#のデータ型の特徴と詳細
について解説します。
C#では、値型と参照型の2種類の変数を定義できます
。値型は実際の値を保持し、参照型は
メモリ内のどこかに格納された値への参照を保持します。値型は
スタック上に割り当てられ、ほとんどのプログラミング言語で使用できます。参照型は
ヒープ上に割り当てられ、通常はクラスインスタンスを表します。C#では、
コード内で独自の値型と参照型を定義することもできます。すべての値型と参照型は、 object
と呼ばれる基本型から派生します。C#では
、暗黙的(データ損失なし)または明示的(データ/精度損失が発生する可能性あり)な変換によって、ある型から別の型に変換することもできます
。
定義済みの C# 値型
- sbyte : 8ビット符号付き整数を保持します。sbyte
の「s」は符号付き(signed)を意味し、変数の値は正または負のいずれかになります。ansbyte 変数の
最小値は -128、最大値は 127 です。 - byte : 8ビットの符号なし整数を保持します。sbyte
変数とは異なり、byte変数は符号なしであり、正の数のみを保持できます。byte変数
の最小値は0、最大値は255です。 - short : 16ビット符号付き整数を保持します。short
変数の最小値は-32,768、最大
値は32,767です。 - ushort : 16ビットの符号なし整数を保持します。ushort
の「u」は符号なしを意味します。ushort
変数の最小値は
0、最大値は65,535です。 - int : 32ビット符号付き整数を保持します。int
変数の最小値
は-2,147,483,648、最大値は2,147,483,647です。 - uint : 32ビットの符号なし整数を保持します。uint
の「u」は符号なし(unsigned)を意味します。uint
変数の最小値は0、
最大値は4,294,967,295です。 - long : 64ビット符号付き整数を保持します。long
変数の最小値は
9,223,372,036,854,775,808、最大値は
9,223,372,036,854,775,807です。 - ulong : 64ビットの符号なし整数を保持します。ulong
の「u」は符号なし(unsigned)を意味します。ulong変数
の最小値
は0、最大値は18,446,744,073,709,551,615です。 - char : 16ビットのUnicode文字を保持します。char
変数の最小値は、
値が0のUnicode文字です。最大値は、
値が65,535のUnicode文字です。 - float : 32ビット符号付き
浮動小数点値を保持します。float型の最小値は
約1.5×10の45乗、最大値
は約3.4×10の38乗です。 - double : 64ビットの符号付き
浮動小数点値を保持します。double の最小値は
約5×10の324乗、最大値は約
1.7×10の308乗です。 - 10進数: 128ビットの符号付き
浮動小数点値を保持します。10進数の変数は金融
計算に適しています。10進数の最小値は約
1の10の28乗倍、最大値は約
7.9の10の28乗倍です。 - bool : true または false のいずれかの値を保持します
。bool 型の使用は、
C# が C および C++ の伝統から逸脱している点の一つです。C および C++ では、
整数値 0 は false と同義であり、0 以外の値は
true と同義でした。しかし、C# ではこれらの型は同義ではありません。
整数変数を同等の bool
値に変換することはできません。true または false の状態を表す必要がある変数を扱う場合は、 int 変数
ではなく bool 変数を使用してください。
定義済みの C# 参照型
- string : Unicode文字の文字列を表します
。文字列の操作や代入が容易になります。文字列は
不変であり、一度作成すると変更できません。そのため、
文字列を別の文字列と連結するなど、文字列を変更しようとすると
、実際には新しい文字列オブジェクトが作成され、そこに新しい結果の文字列が格納されます
。 - object :汎用
型を表します。C#では、すべての定義済み型とユーザー定義型は、object
型または System.Object クラスから継承されます。
まとめ
正しいデータ型を適切に利用することで、開発者は
言語を最大限に活用できますが、
C#に移行する前に他のプログラミング言語を使用していた開発者にとっては、ある程度の時間がかかる可能性があります。
各データ型の詳細については、MicrosoftのWeb
サイトをご覧ください。
Irina Medvinskaya は 1996 年からテクノロジーに携わっています。ペース大学で MBA を取得し、Citigroup でプロジェクト マネージャーとして働いています。

イリナメドヴィンスカヤ