C#的數值型別

  • 540
  • 0
  • 2019-03-19

C#的數值型別

C#是一個強型別的語言, 因此, 在宣告變數時, 必須要指定變數的型別。所以當我們要宣告一個數值型別的變數時, 通常會在一開始就指定型別,

例如

int i;

我們宣告了一個變數i, 並指定變數的型別是 int, 我們也可以在宣告變數時, 就預初始值, 例如

int i = 0;

C# 可以使用Literals字元, 來表示數值的型別, 例如 d代表double, f代表Float, 因此 100d就代表這是一個值為100double型別, 100m就代表這是一個值為100decimal型別,

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型別的對照表跟值域