在C#實現類似Typedef的所有功能
Typedef這個關鍵字,是比較好用的東西,因為有時候我們需要使用一些別名來幫助我們記憶某些結構體或者類的共用。(個人覺得這是C與C++唯一能吸引我的東西)為了能夠實現這個想法,我們可以使用下列方法。
1.使用using語句進行別名,這個方法適合針對結構體。
因為很多時候編程上需要做Win32平台相關的一些工作,比如我要讀取一個Unicode字符,但C#並沒有雙字Word類型,如果我們要支持雙字,那麼就需要自己定義類或者結構體,但實際上在C++裡面,雙字實際上是unsigned short,也就是說我們可以用UInt 16來實現對Word關鍵字的支持,但這裡有一個小小的糾結,那就是我知道Word是Unsigned Int16,但是能不能定義成Word呢?這樣方便我們記憶啊。
但是有的,這時候我們只需要使用using語句就可以了。
做法是這樣子的:
using Word=System.UInt16;
word w=16;
這樣就可以使用Word關鍵字聲明變量了。
2.使用泛型方法構建通用類
這個方法我倒是沒試過,因為使用Typedef實際上只是為了對C++的基礎類型進行兼容罷了,其實using可以將類進行別名,只不過使用泛型方法構建一個類的話,你可以重寫他的運算符,XD
也貼一個原地址,但是全英文撒,看得懂可以自己看,看不懂我貼出譯文
[原文] http://www.codeproject.com/Questions/141385/typedef-in-C
翻譯圖如下:(為了能夠更貼近我們的理解,翻譯的語句已經進行人工修飾,有些翻譯不怎麼容易通順的地方已經摒棄,換作個人理解,如果覺得不好理解可以自行翻譯原文)
(編輯了幾次,突然發現我的博客園的版面不適合看圖,無論我怎麼編輯都不能找到合適的縮放大小,所以我這裡放在百度盤裡面,自行去取吧:http://pan.baidu.com/s/1dFyVbY5)
長圖預警