C#のデータ型
C#では、変数は次のタイプに分けられます。
- 値の型(値型)
- 参照型(参照型)
- ポインタ型(ポインタ型)
値の型(値型)
値型変数の値を割り当てることができます。 これらは、クラスSystem.ValueTypeから誘導されます。
値型は、直接データを含みます。 このようなint型、char型、floatとして、彼らは数字、文字、浮動小数点数を格納されています。 あなたはint型を宣言すると、システムが値を格納するためのメモリを割り当てます。
次の表は、値が利用可能なタイプC#2010を示しています。
类型 | 描述 | 范围 | 默认值 |
---|---|---|---|
bool | 布尔值 | True 或 False | False |
byte | 8 位无符号整数 | 0 到 255 | 0 |
char | 16 位 Unicode 字符 | U +0000 到 U +ffff | '\0' |
decimal | 128 位精确的十进制值,28-29 有效位数 | (-7.9 x 10 28 到 7.9 x 10 28 ) / 10 0 到 28 | 0.0M |
double | 64 位双精度浮点型 | (+/-)5.0 x 10 -324 到 (+/-)1.7 x 10 308 | 0.0D |
float | 32 位单精度浮点型 | -3.4 x 10 38 到 + 3.4 x 10 38 | 0.0F |
int | 32 位有符号整数类型 | -2,147,483,648 到 2,147,483,647 | 0 |
long | 64 位有符号整数类型 | -923,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
sbyte | 8 位有符号整数类型 | -128 到 127 | 0 |
short | 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(型)は、ストレージオブジェクトまたは型のバイト単位の記憶領域のサイズを生成します。 ここでは、マシンint型のサイズ上のストレージのいずれかのタイプを取得する例を示します。
名前空間のDataTypeApplication { クラスプログラム { 静的な無効メイン(文字列[] args) { Console.WriteLineを( "int型のサイズ:{0}"、はsizeof(int型)); Console.ReadLine(); } } }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
int型のサイズ:4
参照型(参照型)
参照型は変数に格納されている実際のデータは含まれていませんが、彼らは、変数への参照が含まれています。
言い換えれば、メモリ位置を参照します。 複数の変数を使用する場合、参照タイプは、メモリ位置を指し示すことができます。 データメモリ位置を変数の変化によって決定された場合、他の変数は自動的に値の変化を反映します。内蔵の参照 型:オブジェクト、動的な文字列。
オブジェクト(オブジェクト)タイプ
すべてのデータ型のための究極の基底クラスで- (CTS共通型システム)、オブジェクト(オブジェクト)タイプは、一般的なC#の型システムです。 オブジェクトはSystem.Objectのクラスのエイリアスです。 そう物体(オブジェクト)のタイプは、他の任意のタイプ(値型、参照型、事前定義されたタイプまたはユーザー定義型)の値に割り当てることができます。 あなたが値を割り当てる前に、しかし、あなたは変換を入力する必要があります。
ときに型をオブジェクトに値の型がボクシングと呼ばれ、値の型にオブジェクト型は、それがアンボクシングと呼ばれる一方、上。
オブジェクトobj。 OBJ = 100; //これがボクシングです
ダイナミック(動的)タイプ
あなたは、変数の動的なデータ型の値の任意の型を格納することができます。 これらの変数は、型チェックは実行時に発生しています。
ダイナミック型宣言の構文:
ダイナミック<変数名> =値;
例えば:
ダイナミックD = 20;
オブジェクト型の同様の動的な型が、検査対象の型変数の型はコンパイル時に発生し、変数の動的な型チェックと型は、実行時に発生します。
文字列(String)をタイプ
文字列(String)をタイプでは、変数に任意の文字列値を割り当てることができます。文字列(String)を型はSystem.Stringクラスのエイリアスです。 これは、派生オブジェクト(オブジェクト)タイプからです。 引用符と引用符@:値文字列(String)をタイプは2つの形式で配布することができます。
例えば:
文字列str = "w3cschool.cc";
引用符で囲まれた文字列@:
@「W3cschool.cc」。
:文字列の前にC#の文字列は、次のような通常の文字として扱われる文字(\)をエスケープします(「逐語的文字列」という。)@追加することができます
string str = @"C:\Windows";
と同等です。
string str = "C:\\Windows";
@文字列は任意の行で使用することができ、改行やインデントのスペースは、文字列の長さにカウントされます。
string str = @"<script type=""text/javascript""> <!-- --> </script>";
ユーザー定義の参照タイプ:クラス、インターフェイスまたはデリゲート。 私たちは、後の章でこれらのタイプについて説明します。
ポインタ型(ポインタ型)
ポインタ型変数は、メモリアドレスの別のタイプを格納します。 C#とCまたはC ++のポインタでのポインタは同じ機能を持っています。
ポインタ型の宣言構文:
*識別子を入力します。
例えば:
char型* CPTR。 int型* IPTR。
私たちは、セクション「安全でないコード」でポインタの型について説明します。