C# 型
C#の型には以下のようなものがあります。
基本データ型
| 型 | サイズ | 範囲 | 規定値 | 内部的なクラス |
|---|---|---|---|---|
| byte | 8ビット | 0 ~ 255 | 0 | System.Byte |
| ushort | 16ビット | 0~65535 | 0 | System.UInt16 |
| uint | 32ビット | 0 ~ 4,294,967,295 | 0 | System.UInt32 |
| ulong | 64ビット | 0 ~ 18,446,744,073,709,551,615 | 0 | System.UInt64 |
| 型 | サイズ | 範囲 | 規定値 | 内部的なクラス |
|---|---|---|---|---|
| sbyte | 8ビット | -128 ~ 127 | 0 | System.SByte |
| short | 16ビット | -32768~32767 | 0 | System.Int16 |
| int | 32ビット | -2,147,483,648 ~ 2,147,483,647 | 0 | System.Int32 |
| long | 64ビット | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0 | System.Int64 |
| 型 | サイズ | 範囲 | 規定値 | 内部的なクラス |
|---|---|---|---|---|
| float | 32ビット | ±1.5e - 45 ~ ±3.4e38 | 0.0 | System.Single |
| double | 64ビット | ±5.0e - 324 ~ ±1.7e308 | 0.0 | System.Double |
| decimal | 128ビット | ±1.0 x 10-28 ~ ±7.9 x 1028 | 0.0 | System.Decimal |
| 型 | サイズ | 範囲 | 規定値 | 内部的なクラス |
|---|---|---|---|---|
| bool | 1ビット | true/false | false | System.Boolean |
| 型 | サイズ | 範囲 | 規定値 | 内部的なクラス |
|---|---|---|---|---|
| char | 16ビット (Unicode) | U+0000 ~ U+ffff | System.Char |
数値リテラルを明示的に型指定したい場合
数値リテラルを明示的に型指定したい場合は、数値リテラルの後ろに記号をつければOKです。
| 型 | 記号 | 例 |
|---|---|---|
| int | なし | 12345 |
| long | l または L | 12345l |
| float | f または F | 123.45f |
| double | d または D | 123.45d |
| decimal | m または M | 123.45m |
| 16進数 | 0x または 0X | 0x12345 |
基本データ型のプロパティ
| プロパティ | 意味 | 範囲 |
|---|---|---|
| MinValue | その型の最小値を返す | 【int】-2147483648 【long】-9223372036854775808 |
| MaxValue | その型の最大値を返す | 【int】2147483647 【long】9223372036854775807 |
Nullable型
基本データ型はNull値を取ることができませんが、
Nullable型にするとNullをセットすることができます。
Nullable型にするには、以下のようにNullable<xx>とするか、?を付けて宣言します。
- 【Nullable型の宣言】
-
//書き方1 Nullable<int> i = null; //書き方2 int? i = null;
| プロパティ/メソッド | 意味 | サンプル |
|---|---|---|
| HasValue | nullでないか判定する | bool b = i.HasValue; |
| Value | Nullableでない型で値を取得する ※nullの状態でこれを呼び出すとエラーとなるので、必ずHasValueとセットで使う。 | int j = i.Value; |
| GetValueOrDefault(val) | nullの場合のデフォルト値を指定して呼び出す | int j = i.GetValueOrDefault(9); |
- 【サンプル】
-
// Null判定&値取得 if (i.HasValue){ int a = i.Value; } // Nullの場合のデフォルト値を指定して値取得 int? i = null; int a = i.GtValueOrDefault(100); →100 // iはnullなのでデフォルト値が返ります int? i = 200; int a = h.GetValueOrDefault(100); →200 // iはnullでないのでiがそのまま返ります
