深入理解C 15個實用C 程式設計技巧總結

2021-09-24 18:26:08 字數 2255 閱讀 1919

c#是一種安全的、穩定的、簡單的、優雅的,由c和c++衍生出來的物件導向的程式語言。它在繼承c和c++強大功能的同時去掉了一些它們的複雜特性(例如沒有巨集以及不允許多重繼承)。

同時。c#綜合了vb簡單的視覺化操作和c++的高執行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向元件程式設計的支援成為.net開發的首選語言。

1、使用stringbuilder代替使用string 連線符 "+"

說明:string類物件是不可變的(唯讀),一旦建立該物件,就不能修改該物件的值。

物件string物件的重新賦值,本質上是重新建立了乙個string物件並將新的值賦值給該物件。如果字串存在較多次的拼接時候,最後使用stringbuilder類,需要引用命名空間 system.text。

不要這樣寫:

2、用foreach 代替 for 迴圈

如果是可以使用foreach的時候,盡量用foreach,而不是 for。前者的效率比後者要高很多。

3、使用hashtable 代替其他字典集合型別(如 stringdictionary、namevaluecollection),存放少量資料的時候可以使用hashtable。

4、避免使用arraylist

因為arraylist使用的時候存在裝箱、拆箱會造成效能的損失,可以用泛型來代替。

5、如果是字元進行比較的時候可以採用string.compare,它會忽略大小寫進行比較,而不要使用uppercase、lowercase轉換後進行比較。

6、如果只是從xml物件中讀取資料,可以用唯讀的xpathdocument代替xmldocument,可以提高效能。

7、c#捕獲異常的時候,不要使用通用的system.exception。可以根據程式邏輯考慮可能出現的異常進行控制。

8、要避免在迴圈體內宣告變數,如果可以的化,最好放在迴圈體外宣告,在迴圈體內初始化。

9、採用using和try/finaly來做資源清理。

10、不要使用異常(exception)來控制程式的流程。因為捕獲異常對效能的損耗很大,最好不要用異常去控制程式的流程。

11、使用值型別的tostring方法避免裝箱操作。

因為值型別到引用型別會造成效能的損耗,所以使用值型別的tostring方法可以避免裝箱造成的效能損耗。

12、避免濫用反射,反射也是比較浪費效能的操作

當使用反射來呼叫型別或者觸發方法,或者訪問乙個字段或者屬性是,clr需要做很多任務作:校驗引數、檢查許可權……所以非常耗時,因此這樣的情況下要盡量避免反射的使用。

13.使用using語句進行別名,這個方法適合針對結構體。

因為很多時候程式設計上需要做win32平台相關的一些工作,比如我要讀取乙個unicode字元,但c#並沒有雙字word型別,如果我們要支援雙字,那麼就需要自己定義類或者結構體,但實際上在c++裡面,雙字實際上是unsigned short,也就是說我們可以用uint 16來實現對word關鍵字的支援,但這裡有乙個小小的糾結,那就是我知道word是unsigned int16,但是能不能定義成word呢?這樣方便我們記憶啊。

但是有的,這時候我們只需要使用using語句就可以了。做法是這樣子的:

這樣就可以使用word關鍵字宣告變數了。

14.定義值型別時,它的大小不要超過16位元組,否則影響效能(頻繁複製時),要麼改為使用引用型別,要麼讓它按ref引用傳遞。

15.字串操作

●字串字面量、字串常量,直接用"+"相連效率高,因為:string str = "srf"+"ttt"+"ccc";會直接編譯成string str = "srftttccc";,同樣適用於字串常量。

●盡量避免對變數的裝箱:字串+變數,較好的做法是:字串+變數.tostring()

●頻繁操作字串時用stringbuilder,並制定足夠大的容量,而string.format("",str1,str2,str3);內部也是用stringbuilder。

c#的開發是乙個長期的工作,從基礎開始,把握好一些技巧的應用,相信通過你的努力,一定能開發出有創意的c#程式。

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

深入理解C (一)

深入理解c 1.list排序以及搜尋 using system using system.collections.generic using system.linq using system.text using system.threading.tasks decimal price public...