這篇文章我想復習下C#中的基元類型。雖然搞清楚基元類型的知識並不會是你工作的必要條件,但做為一個搞技術的人來說還是非常有必要的。起碼可以對付有些顯得比較BT的面試題,哈哈!
關於什麼是基元類型,我想並不是每一位開發者都清楚的,有部分的朋友只知道怎麼在工作中應用它(例如int,string)。如果一個編程基礎比較扎實的朋友來說當然不在話下,就不說別人,拿我自己來說,編程三年多,我都不太關心什麼是基元類型,它有什麼用,其實不知道這些對工作也不會產生決定性的影響。如果你不知道基類型的概念,但會用int,float之類,對平常工作是沒有太大影響的。但如果有人和你討論這些東西時,還是覺的非常有必要對其進行了解和學習。
比較常見的問題,其中一個也是最近園友說過的:
第一:int和int32有啥區別?
第二:string和String又有啥區別?
像很多園友回復的一樣,對這些東西有時不必要太過較真,但既然有這樣的問題,總規要有答案了。這裡我列出以下幾種申明一個整形變量的代碼:
//最簡單
int a = 0;
//較簡潔的
Int32 b=0;
//不簡潔的
int c = new int();
//最不簡潔
System.Int32 d = new System.Int32();
我們再來看下這些代碼生成的IL代碼:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// 代碼大小 10 (0xa)
.maxstack 1
.locals init ([0] int32 a,
[1] int32 b,
[2] int32 c,
[3] int32 d)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: ldc.i4.0
IL_0004: stloc.1
IL_0005: ldc.i4.0
IL_0006: stloc.2
IL_0007: ldc.i4.0
IL_0008: stloc.3
IL_0009: ret
} // end of method Program::Main