日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

更锋利的C#代码-读书笔记

發布時間:2024/4/14 C# 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 更锋利的C#代码-读书笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


第一章 基本的代碼風格
第二章 養成良好的注釋習慣
第三章 一般命名規范
第四章 數據處理
??? 1.十六進制常量的寫法
??????? int i = 0x0000;
??????? int j = 0x0101;
??????? int m = 2L;
??? 2.浮點數的表示有誤差!作為條件判斷時不能與準確值比較,應使用區間比較。
??????? double i = 0.0;
??????? while (i < 10)
??????? {
??????????? i += 0.1;
??????????? Console.WriteLine(i.ToString());
??????????? if(Math.Abs(i-6.0) < 0.01) //使用區間比較。if (i == 6.0)
??????????? {
??????????????? Console.WriteLine("OK!");
??????????? }
??????? }
??????? Console.Read();
??? 3.布爾類型是一個獨立類型,而不是采用整形數值來表示。
??? 4.字符類型采用Unicode編碼,需要兩個字節的存儲空間。因此char可轉換為short/int/long或更寬類型。
??? 5.字符串類型,可以包含轉義字符,用“@”可忽略轉義字符。
??????? string str = "D:/Document/Photos/Flower.jpg";
??? 6.字符串判斷為空(應盡量使用類型本身提供的功能)。
??????? if(str = string.Empty){}
??????? if(string.IsNullOrEmputy(str)){}
??? 7.string類型為不可變類型,對字符串所做的操作都產生了新的字符串實例。
??????? 使用“+”連接string效率低,用stringBuilder類型的Append方法連接字符串效率更高。
??? 8.盡可能的使用內置關鍵字。
??????? lock(obj)
??????? {
??????????? DoSomething(obj);
??????? }
??????? 等同于:
??????? System.Threading.Monitor.Enter(obj);
??????? try
??????? {
??????????? DoSomething(obj);
??????? }
??????? finally
??????? {
??????????? System.Threading.Monitor.Exit(obj);
??????? }
??? 9.初始化一切變量!!!
??? 10.把對于一個變量的操作,寫到一起,使思路更清晰。
??? 11.構建樹形層次結構時,從葉節點開始構建,效率更高。
??? 12.枚舉類型,用來表示一組相對固定的互斥的有限個數的可能性。
??? 13.枚舉類型的命名(Month,ConsoleKey,FontStyles)。
??? 14.標記枚舉,各項值都是2的冪數。
??????? [Flags] //標記枚舉
??????? {
??????????? None = 0,?? //默認項
??????????? Read = 1,
??????????? Write = 2,
??????????? Modify = 4,
??????????? Execute = 8,
??????????? ReadWrite = Read | Write,?? //組合項
??????????? FullControl = Read | Write | Modify | Execute
??????? }
??? 15.魔數(Magic Number),是指以數字形式出現在代碼中的常量。為盡量避免使用數字,應預定義常量。
?16.避免不易讀懂的長表達式。
?17.復雜表達式中需要注意帶有副作用(改變操作數的值)的運算符。
第五章 分支結構
??? 1.采用“排除法”檢查異常情況。(缺點:程序不會繼續執行。)
?if(true)
?{
???? MessageBox.Show("error!");
???? return null;
?}
??? 2.使用“標志變量”記錄錯誤。(優點:不影響程序的繼續執行。)
?bool successful = true;
?for(int i = 0; i<10; i++)
?{
???? try
???? {
??File.Copy(xxx[i],xxx[i])
???? }
???? catch
???? {
??successful = false;
???? }
?}
?if(!successful)
?{
???? MessageBox.Show("error!");
?}
?return successful;
??? 3.在C#中,"switch"語句不允許貫穿,每個標簽必須以“break”結束。
??? 4.在switch語句中,應避免default子句的濫用。
?…
?default:
???? throw new Exception("error!");
?…
??? 5.switch結構特點:每組測試一個表達式,應用于整數、枚舉、字符串類型,書寫簡潔。
??? 6.無論是if還是switch結構,其目標是最恰當地表現出事物原本的邏輯關系,并盡可能的使代碼簡潔。
??? 7.分值結構,先判斷最有可能成立的條件。
??? 8.只要不會引起嚴重的性能損失,那么可讀性就是最重要的。
??? 9.使用“&&”、“||”,有短路效應。
??? 10.在錯誤處理中需要使用goto語句。使用goto原則是使程序代碼的邏輯顯得更為清晰。
第六章 循環結構
??? 1.在C#中,for循環和while循環同樣靈活,兩個結構可以互換,不局限于數值控制循環。
??? 2.for循環和while循環的差異主要在思維模式上。
??? 3.for循環更適合于簡單的數值迭代。
??? 4.規則:凡是需要在循環過程中改變循環變量值的情況,都應避免使用for循環。
??? 5.用foreach結構輕松實現對數組和集合的遍歷訪問。
??? 6.用foreach本身有一個限制:整個遍歷過程中對集合的操作應該是只讀的。
??? 7.對數組或集合,用foreach;循環次數可預知,用for;循環結構復雜,循環次數變化,用while。
??? 8.循環變量一般使用i、j、k表示,i為最外層,j為中間層,k為最內層。
??? 9.循環嵌套最好三層以內。
??? 10.循環變量最好不要再循環外使用,在循環外使用更有意義的變量名(row,col)。
??? 11.循環變量只用于循環內部時,應在for,while語句中定義。
??? 12.避免循環變量的非常規應用,不要以可讀性為代價使用所謂的“技巧”,應采用標志變量的方式進行控制。
?bool found = false;
?for(int i = 0; i < max; i++)
?{
???? if(Match(data[i]) == true)
???? {
??found = true;
??break;
???? }
?}

?if(found)
?{
???? Console.WriteLine("Found");
?}
?else
?{
???? Console.WriteLine("No Found");
?}
??? 13.應盡量優化循環,提高循環的效率。
??? 14.程序的可讀性非常重要!!!
??? 15.循環是非常消耗資源的,應盡量避免在循環中做不必要的操作。
第七章 如何使用函數
??? 1.引入函數,為了實現代碼復用,更重要的是隱藏細節。
??? 2.使用函數進行抽象,分解完成一件事的步驟,降低復雜度。
??? 3.函數重載的目的是方便調用者
?1)支持多種數據類型
?2)支持多種數據提供方式
?3)為復雜的參數提供默認值
??? 4.保持核心代碼的唯一。
?各重載函數的核心功能應該由一個函數實現,真正的工作應該讓最復雜的那個重載版本來完成。
??? 5.參數的設計。
?1)參數命名:描述性,明確意義。
?2)使用變長參數列表。(params string[] filenames)
?3)合理使用ref參數或out參數。有時可以定義一個結果或類,作為返回數據類型。
?4)參數的順序:重->輕,入->出。
?5)重載函數參數一致性。
??? 6.參數檢查
?1)檢查零值和空引用。
?2)檢查枚舉類型。
?3)防止數據被篡改,對于引用類型,應先制作一份私有副本,再進行驗證和處理。
?4)檢查數據合法性的位置。
??? 7.離開函數的三種方式:自然結束;return;異常。
第八章 結構與類

轉載于:https://www.cnblogs.com/kimblog/archive/2011/04/28/2279491.html

總結

以上是生活随笔為你收集整理的更锋利的C#代码-读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。