C# のデータ型
C#では、変数は次の型に分けられます。
値型(Value type)
値型変数は直接代入可能値に。これらは System.ValueType クラスから派生します。
値型にはデータが直接含まれます。たとえば、int、char、float にはそれぞれ数値、文字、浮動小数点数が格納されます。 int 型を宣言すると、システムは値を格納するためにメモリを割り当てます。
次の表は、C# 2010 で使用できる値の型を示しています。
嘘 | byte | 8ビット符号なし整数 | 0〜255 | 0
| char | 16ビットUnicode文字 | U +0000〜U +ffff | '
/ 10
0~28 | 0.0M | | double | 64ビット倍精度浮動小数点
(+/-)5.0 x 10-324 | ~(+/-)1.7 x 10308 | | 0.0D |
float | 32ビット単精度float | -3.4 x 1038から+ 3.4 x 10380.0F | | int
32 人が署名しました整数型 | -2,147,483,648~2,147,483,647 | 0long | 64ビット符号付き整数型 | -923,372,036,854,775,808~
9,223,372,036,854,775,807
0L | | sbyte8ビット符号付き整数型-127 | 0 |
short | 1 6 ビット符号付き整数型 | -32,768 ~ 32,767 | 0 |
uint | 32ビット符号なし整数型 | 0〜4,294,967,295 | 0 |
ulong | 64ビット符号なし整数型 | 0〜18,446,744,073,7 09,5 51,615 | 0 |
ushort | 16なし 符号付き整数型 | 0 ~ 65,535 | 0 |
特定のプラットフォームで型または変数の正確なサイズを取得する必要がある場合は、sizeof メソッドを使用できます。 sizeof(type) という式は、オブジェクトまたはタイプのストレージ サイズをバイト単位で返します。次の例では、任意のマシン上の int 型のストレージ サイズを取得します。
namespace DataTypeApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Size of int: {0 }" , sizeof(int));
Console.ReadLine(); 参照型
参照型には、変数に格納されている実際のデータは含まれませんが、変数への参照が含まれています。
言い換えれば、それらは記憶の場所を指します。複数の変数を使用する場合、参照型はメモリの場所を指すことができます。メモリ位置のデータが 1 つの変数によって変更されると、他の変数の値の変更が自動的に反映されます。組み込みの参照タイプは、オブジェクト、動的、文字列です。
オブジェクト型
オブジェクト型は、C# Common Type System (CTS) のすべてのデータ型の究極の基本クラスです。 Object は、System.Object クラスのエイリアスです。したがって、オブジェクト型には他の型 (値型、参照型、事前定義型、またはユーザー定義型) の値を割り当てることができます。ただし、値を割り当てる前に型変換が必要です。
値型をオブジェクト型に変換することをボックス化と呼び、一方、オブジェクト型を値型に変換することをアンボックス化と呼びます。
object obj;obj = 100; // これはボックス化された
動的型です動的データ型変数には任意の型の値を格納できます。これらの変数の型チェックは実行時に行われます。 動的型を宣言するための構文: dynamic <variable_name> = value;
例:
dynamic d = 20;動的型付けはオブジェクト型付けに似ていますが、オブジェクト型変数の型チェックはコンパイル時に行われ、動的型変数の型チェックは実行時に行われます。
String 型
String 型を使用すると、任意の文字列値を変数に割り当てることができます。 String 型は System.String クラスのエイリアスです。これはオブジェクト型から派生します。 String 型の値は、引用符と @quotes の 2 つの形式で割り当てることができます。
例:
String str = "w3cschool.cc";
A @quote string:
C# string 文字列の前に @ を追加できます ( "Verbatim string" と呼ばれる) は、エスケープ文字 () を通常の文字として扱います。例:
string str = @"C:Windows";
は次と同等です。 ;
@ 文字列内で任意に改行を区切ることができます。改行文字とインデントされたスペースも文字列の長さに含まれます。
string str = @"<script type=""text/javascript"">
<!-- -->
</script>";
ユーザー定義の参照型クラス、インターフェイス、またはデリゲートです。これらのタイプについては、後の章で説明します。
ポインタ型 ポインタ型変数は、別のタイプのメモリ アドレスを格納します。 C# のポインターには、C または C++ のポインターと同じ機能があります。 ポインター型を宣言するための構文: type* identifier;
char* cptr;
ポインター型については、「安全でないコード」の章で説明します。
|