C#文法 – データタイプ

C#入門

 
 
■C#のデータ型について
C#は.NETの Common Type System に定義された.NETデータ型を使います。C#はintdoublestringなどC#キーワードでデータ型を表現できるし、System.Int32System.DoubleSystem.Stringなど.NETデータクラスでも表現できます。
内部的には、C#キーワードのデータ型をコンパイルして、.NETデータ型へ変更します。
 

C#データ型.NETデータ型説明
boolSystem.BooleanTrue of False
byteSystem.Byte8ビット unsigned integer
sbyteSystem.SByte8ビット signed integer
shortSystem.Int1616ビット signed integer
intSystem.Int3232ビット signed integer
longSystem.Int6464ビット signed integer
ushortSystem.UInt1616ビット unsigned integer
uintSystem.UInt3232ビット unsigned integer
ulongSystem.UInt6464ビット unsigned integer
floatSystem.Single32ビット single precision 浮動小数点
doubleSystem.Double64ビット double precision 浮動小数点
decimalSystem.Decimal128ビット Decimal
charSystem.Char16ビット Unicode 文字列
stringSystem.StringUnicode 文字列
System.DateTime日付、時間
objectSystem.Object全てのタイプを含められる

 
 
■C#のリテラルデータ
 
C#で1234, true, false, “ABCD”のように値を直接使うことができ、これをリテラル(Literal)と言います。リテラルデータを使用時、別の接尾辞(Suffix)がないと、C#コンパイラはint, double, char, string, boolなどのデータ型にその値を代入します。なので、特定のデータ型を指定したい場合は、リテラルデータに1〜2文字の指定接尾辞(Suffix)を付ける必要があります。Suffixは大・小文字の区別をしません。つまりdecimalを示す接尾辞Mは1024Mや1024mのどちらでも使えます。
 

C#リテラルデータタイプSuffix(大・小文字使用可)
longL2020L
uintU2020U
ulongUL2020UL
floatF20.20F
doubleD20.20D(または20.20)
decimalM20.20M

 
■データ型の例

// Boolean
bool flg = true;

// Numeric
short s = -123;
int i = 123;
long l = 123L;
float f = 123.4F;
double d = 123.4D;
decimal dc = 123.4M;

// String
char c = ‘a’;
string s = “ABC”;

// DateTime
DateTime dt = new DateTime(2020, 6, 2, 10, 0, 0);

 
■最小・最大値プロパティ
 
.NETデータ型のMaxValue, MinValueプロパティでデータ型の最小・最大値を使えます。

int max = int.MaxValue;
float min = float.MinValue;

 
■NULL
 
ある変数がメモリ上にどんなデータも持っていないと言う意味でNULLを使います。
全てのデータ型がNULLを持つことはできなく、持てる型(Referenceタイプ)と持てない型(Valueタイプ)で区別できます。
 
 
■Nullable Type
 
intやDateTimeなどValue Typeは、基本NULLを持てませんが、C#2.0からこれらのタイプもNULLを持てるようになりました。それをNullable Typeと言います。
 
intやDateTimeの後ろに「?」を付けるとNullable Typeになります。

int? a = null;
a = 10;

bool? flg = null;

 
 
 
 

当サイトは広告を含めています。広告のクリックによる収益は全て当サイトの管理、維持、コンテンツ製作に使われます。

 

Team ladybird
タイトルとURLをコピーしました