C#的數值型別
C#是一個強型別的語言, 因此, 在宣告變數時, 必須要指定變數的型別。所以當我們要宣告一個數值型別的變數時, 通常會在一開始就指定型別,
例如
int i;
我們宣告了一個變數i, 並指定變數的型別是 int, 我們也可以在宣告變數時, 就預初始值, 例如
int i = 0;
C# 可以使用Literals字元, 來表示數值的型別, 例如 d代表double, f代表Float, 因此 100d就代表這是一個值為100的double型別, 100m就代表這是一個值為100的decimal型別,
C# 在3.0之後, 可以使用隱含型別的var來宣告變數, var是隱含型別, 也是強型別, 因此使用var宣告時, 就己經定義了變數的型別, 而我們也可以Literals來決定變數的型別, 例如
var budget = 1000d;
代表budget這個變數的型別是double,
此外 Linterals的宣告方式, 也能幫我們輕鬆的轉換數值的型別, 例如
int TotalPayment = 0x1212356;
C#會自動幫我們將十六進制的數值轉換成int,
C#的 Literals則有以下這些,
var IsDecimal = 1000m; //decimal
var IsDouble = 1000d; //double
var IsFloat = 1000f; //float
byte IsByte = 0b1101; //binary,將binary轉換成 byte
var IsHex = 0xFF;//十六進制, 轉換成 十進制
另外還有一個與數值有關的型別, 就是使用可為Null的型別 Nullable<T>, 其中T是實值型別,
例如 Nullable<int> a = 0;
也就是宣告一個a變數是可為Null型別的int, 這個a變數可以是數值, 也可以是null,
而我們更可以將Nullable<int> a = 0; 縮寫成 int? a = 0;
另外再搭配??運算子, 將陳述式寫得更簡短,
int? x = null;//宣告x變數是 Nullable<int>型別, 並且初始值為null
int y = x ?? 0;//宣告y變數是 int型別, 若x是null, 則y的初始值為0, 否則y的初始值為x
附上C#數值型別與.net型別的對照表跟值域