2016年5月14日土曜日

[C#] データタイプとリテラル(literal)、 Nullable

こんにちは。明月です。
今日はデータタイプとリテラル(literal)、Nullableについて勉強します。


とりあえず、データタイプについて説明します。
我々がパソコンでプログラムを作ることは大きい計算機を作ることだと思うと良いです。利用の目的は差異があると思いますが、ゲーム、デザインツール、バッチプログラムなども内部を見ると結局に数の計算になっています。

人間は整数、実数の区別せずに計算ができますが、パソコンの場合は整数、実数、文字が完全に分けてあります。それをデータタイプと命名してメモリを宣言する時に定義します。


そうするとデータタイプ種類と説明に下記に記述します。


C#データタイプ .NETデータタイプ 説明
bool System.Boolean True or False
byte System.Byte 8ビットunsigned integer
sbyte System.SByte 8ビットsigned integer
short System.Int16 16ビットsigned integer
int System.Int32 32ビットsigned integer
long System.Int64 64ビットsigned integer
ushort System.UInt16 16ビットunsigned integer
uint System.UInt32 32ビットunsigned integer
ulong System.UInt64 64ビットunsigned integer
float System.Single 32ビットsingle precision浮動小数点数
double System.Double 64ビットdouble precision浮動小数点数
decimal System.Decimal 128ビットDecimal
char System.Char 16ビットユニコード文字
string System.String ユニコード文字列
System.DateTime 時間
object System.Object すべての親タイプ


簡単に例を作成してみましたが、データタイプはデータを扱う部分の全てのところで使っています。すなわち、変数宣言、メソッド返却、パラメターなどがありますね。
変数でデータタイプの宣言する部分を見ると「double b = 0.0;」の部分があります。その部分は間違ってないけど、実数のデータタイプは「double」以外に「float」もありますね。 宣言すると「double」系の場合は「double b = 0.0;」は良いけど、「float c = 0.0;」はエラーになりますね。



コードで「0.0」は「double」系に認識するので、データタイプが合わないエラーが発生します。
そうすると、「flaot」系の宣言はどうふうに使うかと見ると「0.0」の語尾に「f」を付けます。それをリテラル(literal)と言います。


C#リテラルデータタイプ Suffix
long L 1024L
uint U 1024U
ulong UL 1024UL
float F 10.24F
double D 10.24Dまたは10.24
decimal M 10.24M

メモリには基本的にデータがアリ、ナシが存在します。そのことでデータがなしという意味はプログラム的に「null」(ヌル)と呼びます。


でもC#は基本データタイプにはnullを許しません。int(整数データタイプ)の場合は「int a;」に宣言すると基本値「0」が設定します。でもこの基本設定値が問題になるケースがあります。
「0」のことも値として使う場合は変数の初期化して格納された値か計算して格納された値かを判断できないです。その場合に初期化の値を「null」に設定して、変数の状態を「null」か「0」かのことで判断できます。
データタイプに「null」を許されるのはデータタイプの語尾に「?」を付けて「null」を宣言することです。



今までデータタイプについて勉強しました。特にデータタイプとリテラルの場合はC#ではなく、C言語、Javaにと同じ形式で使っていますね。
データタイプとリテラルはプログラム開発の中で大切な部分なのでちゃんと覚えていきましょう。

0 件のコメント