在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關鍵字宣告變數了。word w=16;
3.使用泛型方法構建通用類
也貼一些運用別名的例子吧!
我的專案裡面toolkits.rpc命名空間下有個message的類,但是在windowsform下面,與框架自帶的message的命名產生了二義性,如果要避免這種情況,我們只能使用完全限定名稱(也就是命名空間+類名的形式限定):
stack_messagepool;為了避免每次都輸入命名空間限定範圍,我使用了using 別名指令或者:stack
_mesagepool;
進行限定,如下:
也貼乙個原位址,但是全英文撒,看得懂可以自己看,看不懂我貼出譯文
[原文]
翻譯圖如下:(為了能夠更貼近我們的理解,翻譯的語句已經進行人工修飾,有些翻譯不怎麼容易通順的地方已經摒棄,換作個人理解,如果覺得不好理解可以自行翻譯原文)
長圖預警
C 一些小技巧
這裡講解一些簡單的小方法,希望在開發中能用到提高開發速度。有點時候需要對兩個引數操作,這樣用返回值實現其來就複雜了。要明白引用傳遞,對於值型別來說 修飾符ref修飾。在寫方法時,有時常為引數個數發愁。例如有的引數希望如果呼叫傳值了就用所串的值,如果沒有傳值就不處理它。這裡有道乙個修飾符 params...
一些小技巧
關注 乙個好的程式設計師不應該把所有的判斷交給編譯器和偵錯程式,應該在程式中自己加以程式保護和錯誤定位,具體措施包括 對於所有有返回值的函式,都應該檢查返回值,除非你確信這個函式呼叫絕對不會出錯,或者不關心它是否出錯。一些函式返回錯誤,需要用其他函式獲得錯誤的具體資訊。例如accept返回inval...
一些小技巧
protected void repparent itemdatabound object sender,system.web.ui.webcontrols.repeateritemeventargs e 在父datalist的itemdatabound事件裡面寫子datalist的資料來源 繫結 ...