.NET的C# 學習經驗總結

iDotNetSpace發表於2010-03-17
 裝箱、拆箱還是別名

     許多介紹C# .NET學習經驗的書上都有介紹 int -> Int32 是一個裝箱的過程,反之則是拆箱的過程。許多其它變數型別也是如此,如:short Int16,long Int64 等。對於一般的程式設計師來說,大可不必去了解這一過程,因為這些裝箱和拆箱的動作都是可以自動完成的,不需要寫程式碼進行干預。但是我們需要記住這些型別之間的關係,所以,我們使用“別名”來記憶它們之間的關係。

     C# 是全物件導向的語言,比 Java 的物件導向都還徹底——它把簡單資料型別通過預設的裝箱動作封裝成了類。Int32、Int16、Int64 等就是相應的類名,而那些我們熟悉的、簡單易記的名稱,如 int、short、long 等,我們就可以把它稱作是 Int32、Int16、Int64 等型別的別名。那麼除了這三種型別之外,還有哪些類有“別名”呢?常用的有如下一些:

     bool -> System.Boolean (布林型,其值為 true 或者 false)
     char -> System.Char (字元型,佔有兩個位元組,表示 1 個 Unicode 字元)
     byte -> System.Byte (位元組型,佔 1 位元組,表示 8 位正整數,範圍 0 ~ 255)
     sbyte -> System.SByte (帶符號位元組型,佔 1 位元組,表示 8 位整數,範圍 -128 ~ 127)
     ushort -> System.UInt16 (無符號短整型,佔 2 位元組,表示 16 位正整數,範圍 0 ~ 65,535)
     uint -> System.UInt32 (無符號整型,佔 4 位元組,表示 32 位正整數,範圍 0 ~ 4,294,967,295)
     ulong -> System.UInt64 (無符號長整型,佔 8 位元組,表示 64 位正整數,範圍 0 ~ 大約 10 的 20 次方)
     short -> System.Int16 (短整型,佔 2 位元組,表示 16 位整數,範圍 -32,768 ~ 32,767)
     int -> System.Int32 (整型,佔 4 位元組,表示 32 位整數,範圍 -2,147,483,648 到 2,147,483,647)
     long -> System.Int64 (長整型,佔 8 位元組,表示 64 位整數,範圍大約 -(10 的 19) 次方 到 10 的 19 次方)
     float -> System.Single (單精度浮點型,佔 4 個位元組)
     double -> System.Double (雙精度浮點型,佔 8 個位元組)

     我們可以用下列程式碼做一個實驗:

private void TestAlias() {        // this.textBox1 是一個文字框,型別為 System.Windows.Forms.TextBox        // 設計中已經將其 Multiline 屬性設定為 true              byte a = 1; char b = 'a'; short c = 1;        int d = 2; long e = 3; uint f = 4; bool g = true;        this.textBox1.Text = "";        this.textBox1.AppendText("byte -> " + a.GetType().FullName + "\n");        this.textBox1.AppendText("char -> " + b.GetType().FullName + "\n");        this.textBox1.AppendText("short -> " + c.GetType().FullName + "\n");        this.textBox1.AppendText("int -> " + d.GetType().FullName + "\n");        this.textBox1.AppendText("long -> " + e.GetType().FullName + "\n");        this.textBox1.AppendText("uint -> " + f.GetType().FullName + "\n");        this.textBox1.AppendText("bool -> " + g.GetType().FullName + "\n");    }      在窗體中新建一個按鈕,並在它的單擊事件中呼叫該 TestAlias() 函式,執行結果如下:

     byte -> System.Byte
     char -> System.Char
     short -> System.Int16
     int -> System.Int32
     long -> System.Int64
     uint -> System.UInt32
     bool -> System.Boolean

     這足以說明各別名對應的類!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-629673/,如需轉載,請註明出處,否則將追究法律責任。

相關文章