freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

microsoftc編碼規(guī)范(參考版)

2025-04-19 04:16本頁(yè)面
  

【正文】 為了解決這一點(diǎn),用戶需要將所有對(duì)于Dispose (在它們的 finally 塊內(nèi)!)的調(diào)用放入try 塊內(nèi),這。try{ // Do some stuff}finally { ()。用戶不希望調(diào)用Dispose 會(huì)引發(fā)異常。 253。 一定不要 將無(wú)參Dispose 方法定義為虛函數(shù) 。 (this)。僅當(dāng)Dispose(true) 成功執(zhí)行完后才能調(diào)用 SuppressFinalize 。 } }}254。下一章節(jié)我們會(huì)詳細(xì)介紹終結(jié)器的細(xì)節(jié)。如果從終結(jié)器內(nèi)調(diào)用,則其參數(shù)為 false 。 所有資源清理都應(yīng)該在該方法中完成。 254。 類。254。一定請(qǐng) 拓展基礎(chǔ) Dispose 模式來(lái)提供一個(gè) 終結(jié)器。 一定請(qǐng)為包含了可釋放類型的類型實(shí)現(xiàn)基礎(chǔ)Dispose 模式。 } disposed = true。 } protected virtual void Dispose(bool disposing) { // Protect from being called multiple times. if (disposed) return。 // Now call some native methods using the resource ... } public void Dispose() { Dispose(true)。 private SafeHandle resource??山K結(jié)類型是該簡(jiǎn)單模式的拓展,我們會(huì)在下個(gè)章節(jié)中討論。 基礎(chǔ)Dispose 模式 接口,聲明實(shí)現(xiàn)了所有資源清理邏輯的 Dispose(bool) 方法,該方法被Dispose 方法和可選的終結(jié)器所共享。// C sample:using (FileStream stream = new FileStream(...)){ ...}許多語(yǔ)言特性都會(huì)自動(dòng)的為您寫入tryfinally 塊。 ...}finally{ if (stream != null) ()。舉例: // C sample:FileStream stream = null。 一定不要 使用 catch 塊來(lái)清理資源。 Tryfinally 塊254。 // Rethrow} 資源清理253。 // Rethrow}Bad: // C sample:try{ ... // Do some reading with the file}catch (Exception ex){ = position。這是保持異常調(diào)用棧的最佳途徑:Good: // C sample:try{ ... // Do some reading with the file}catch{ = position。以下情況隱藏錯(cuò)誤是可以接受的,但是其發(fā)生幾率很低:Good: // C sample:try{ ...}catch( exc){ ...}catch( exc){ ...}catch( exc){ ...}Bad: // C sample:try{ ...}catch (Exception ex){ ...}254。一定要捕獲代碼能夠處理的、明確的異常。 異常處理253。 一定不要顯式的從finally塊內(nèi)拋出異常。 may throw an exception when the InnerException property39。 sample39。該行為很難與過濾器顯式的執(zhí)行并返回錯(cuò)誤區(qū)分開,所以會(huì)增加調(diào)試難度。 一定不要 從異常過濾器塊內(nèi)拋出異常。 !){ (additionalNumber)。比如,在調(diào)用可能失敗或拋出異常的方法前, 您可以檢查其前置條件,舉例,// C 示例:if (collection != null amp。 一定不要 將異常用于常規(guī)的控制流。 拋出 。 一定請(qǐng) 拋出最明確,最有意義的異常(繼承體系最底層的) 。一定不要返回一個(gè)錯(cuò)誤代碼。 異常在框架內(nèi)是告知錯(cuò)誤的主要手段。 錯(cuò)誤和異常 拋出異常 254。public abstract class Claim{ internal Claim() { ... }} 命名空間254。 Protected構(gòu)造函數(shù)更常見,因?yàn)槠湓试S當(dāng)子類創(chuàng)建時(shí),基類可以完成自己的初始化工作。254。 抽象類253。 一定請(qǐng) 合理使用靜態(tài)類。 Public成員應(yīng)該通過調(diào)用Protected的虛方法來(lái)提供拓展性(如果需要的話)。 254。253。 虛成員方法相較于回調(diào)和事件,虛成員方法性能上有更好的表現(xiàn)。254。 您不應(yīng)該在沒有合理理由的情況下顯式的實(shí)現(xiàn)接口成員。短重載函數(shù)應(yīng)該一直調(diào)用到長(zhǎng)重載函數(shù)。254。如果一個(gè)重載函數(shù)中的參數(shù)代表著另一個(gè)重載函數(shù)中相同的參數(shù),該參數(shù)則應(yīng)該有相同的命名。 Do rotation hereEnd Sub253。Good: Public Overloads Sub Rotate(ByVal data As Matrix) Rotate(data, 180)End SubPublic Overloads Sub Rotate(ByVal data As Matrix, ByVal degrees As Integer) 39。(123是版本1的默認(rèn)參數(shù),而不是版本2的。當(dāng)編譯代碼調(diào)用該方法,且沒有指定可選參數(shù)時(shí),編譯器在調(diào)用處直接將123嵌入代碼中。 同時(shí),帶有默認(rèn)參數(shù)的成員方法存在一個(gè)版本問題。 一定請(qǐng) 使用成員方法重載 ,而不是定義帶有默認(rèn)參數(shù)的成員方法。雖然事件易于理解和使用,但是就性能和內(nèi)存消耗而言,它們不如虛函數(shù)。 253。 一定請(qǐng) 注意事件處理方法中可能會(huì)執(zhí)行任意代碼。如果實(shí)參值超出由調(diào)用方法定義的可接受范圍,則拋出 ArgumentOutOfRangeException異常。 一定請(qǐng) 驗(yàn)證傳遞給Public,Protected或顯式實(shí)現(xiàn)的成員方法的實(shí)參。 一定請(qǐng) 將所有輸出參數(shù)放置于 所有傳值和傳引用參數(shù)(除去參數(shù)數(shù)組)的之后,即使它引起了重載方法之前不一致的參數(shù)順序。調(diào)用虛方法時(shí),實(shí)際調(diào)用了繼承體系最底層的覆蓋(override)方法,而不考慮定義了該方法的類的構(gòu)造函數(shù)是否已被調(diào)用。253。 即使有時(shí)編譯器為自動(dòng)的為您的類增加一個(gè)默認(rèn)構(gòu)造函數(shù),但是顯式的聲明使得代碼更易維護(hù)。254。254。除了得到構(gòu)造函數(shù)參數(shù),設(shè)置主要數(shù)據(jù)成員,構(gòu)造函數(shù)不應(yīng)該有太多的工作量。 構(gòu)造函數(shù)254。索引器可以因?yàn)闊o(wú)效實(shí)參而拋出異常。如果一個(gè)屬性訪問器可能拋出異常,那么考慮將其重新設(shè)計(jì)為一個(gè)方法。 您不應(yīng)該 從屬性訪問器 內(nèi)拋出異常。 一定請(qǐng) 為所有屬性提供合理的默認(rèn)值,并確保默認(rèn)值不會(huì)引發(fā)安全漏洞或一個(gè)極端低效的設(shè)計(jì)。方法名應(yīng)該以 Set開頭,后面跟著屬性名。 一定不要 提供只寫屬性。 一定請(qǐng) 創(chuàng)建只讀屬性,如果用戶不應(yīng)該具有修改這些屬性值的能力。 一定不要 將可變類型定義為只讀字段。 一定請(qǐng) 將永遠(yuǎn)不會(huì)改變的字段定義為常量字段。 一定請(qǐng) 將預(yù)定義對(duì)象實(shí)例定義為public static readonly字段。我們應(yīng)該使用Private字段,并通過屬性來(lái)提供訪問接口。 一定不要 提供Public或Protected的實(shí)例字段。 一定請(qǐng)使用 接口,例如IDisposable,來(lái)表示 “can do” 關(guān)系,例如 “對(duì)象能被釋放”。 一定請(qǐng) 使用繼承來(lái)表示 “is a” 關(guān)系,例如 “貓是一種動(dòng)物”。其余情況下,您應(yīng)該定義類,而不是結(jié)構(gòu)體。? 它是不可變的。 一定不要 定義結(jié)構(gòu)體,除非其具有如下特性:? 它在邏輯上代表了一個(gè)單值,類似于原始類型 (例如,int、 double,等等)。IEquatableT.Equals 較其有相當(dāng)大的性能提升,且其實(shí)現(xiàn)可以不引發(fā)裝箱操作。 方法會(huì)引起裝箱操作。254。 一定請(qǐng)確保將所有實(shí)例數(shù)據(jù)設(shè)置為0值,false或者是null 。int[] arr = SomeOtherFunc()。 空值數(shù)組或集合的含義在代碼環(huán)境中很難被理解。253。同樣,也不要同時(shí)實(shí)現(xiàn)非泛型接口IEnumerator 和 IEnumerable。 253。254。相反,您應(yīng)該嘗試其他字典類,例如StringDictionary,NameValueCollection, HybridCollection。254。所以我們推薦您使用定制類型的集合,而不是ArrayList。254。Dim multiDimArray(,) As Integer = _{ _ {1, 2, 3, 4}, _ {5, 6, 7, 0}, _ {8, 0, 0, 0}, _ {9, 0, 0, 0} _}254。// 不規(guī)則數(shù)組 int[][] jaggedArray = { new int[] {1, 2, 3, 4}, new int[] {5, 6, 7}, new int[] {8}, new int[] {9}}。構(gòu)成元素的數(shù)組可能有不同大小,這樣相較于多維數(shù)組能減少一些數(shù)據(jù)集的空間浪費(fèi) (例如,稀疏矩陣)。 您應(yīng)該 使用不規(guī)則數(shù)組來(lái)代替使用多維數(shù)組 。 }public static char[] GetInvalidPathChars(){ return (char[])()。您可以使用一個(gè)只讀集合 (只要其元素也是不可變的) ,或者在返回之前進(jìn)行數(shù)組克隆。這允許調(diào)用者修改數(shù)組內(nèi)的值:InvalidPathChars[0] = 39。|39。39。39。\39。字段本身只讀,不能被修改,但是其內(nèi)部元素可以被修改。253。 然而,如果您把熟練開發(fā)者作為目標(biāo),對(duì)于只讀場(chǎng)景使用數(shù)組也是個(gè)不錯(cuò)的主意。 集合提供了對(duì)于其內(nèi)容更多的控制權(quán),可以隨著時(shí)間改善,提高可用性。 您應(yīng)該 在低層次函數(shù)中使用數(shù)組,來(lái)減少內(nèi)存消耗,增強(qiáng)性能表現(xiàn)。 一定請(qǐng) 在字符串比較時(shí), 。 這2個(gè)函數(shù)是用于字符串排序,而非檢查相等性。 比如,忽略大小寫后,判斷2個(gè)字符串是否相等,if ((str2, ))If ((str2, )) Then253。 254。一般而言。 254。254。254。 一定請(qǐng) 使用 顯式地指定了字符串比較規(guī)則的重載函數(shù)。 i++){ (())。for (int i = 0。’) 。相反,您應(yīng)該使用StringBuilder 來(lái)實(shí)現(xiàn)拼接工作。 一定不要 使用 ‘+’ 操作符 ( ‘a(chǎn)mp。 public static readonly ShellFolder ProgramFiles = new ShellFolder(ProgramData)。如果有預(yù)定義的類型實(shí)例,也將該類型定義為public static readonly。}254。public class Int32{ public const int MaxValue = 0x7fffffff。編譯器直接將常量字段嵌入調(diào)用代碼處。 常量254。 戶界面 控件命名規(guī)范用戶控件應(yīng)該使用如下前綴,其重要目的是使代碼更易讀。ArgumentExceptionInvalidName 匈牙利命名法253。254。 一定請(qǐng) 提供描述性強(qiáng)的標(biāo)識(shí)符。 您應(yīng)該 使用 T 作為單字符類型參數(shù)的名稱。 一定請(qǐng) 以T作為描述性類型參數(shù)的前綴。 一定請(qǐng) 以描述性名稱命名泛型參數(shù),除非單字符名稱已有足夠描述性。參數(shù),變量Camel規(guī)范名詞int customerID。private const string messageText = B。只有1或2個(gè)字符的縮寫需全部字符大寫。 一定不要 為委托增加 “Delegate” 后綴。 一定請(qǐng) 為除了用于事件處理程序之外的委托增加 ‘Callback’后綴。 一定請(qǐng) 為用于事件的委托增加‘EventHandler’ 后綴。 一定不要 使用 “Before” 或者“After” 前綴或后綴來(lái)指明事件的先后。 一定請(qǐng) 用現(xiàn)在式或過去式來(lái)表明事件之前或是之后的概念。private string _name。 前綴時(shí),保持代碼一致性。一定請(qǐng) 在您使用39。當(dāng)以 “Is,” “Can,” or “Has” 作布爾屬性的前綴有意義時(shí),您也可以這樣做。254。[Flags]public enum ConsoleModifiers { Alt, Control }方法Pascal規(guī)范動(dòng)詞或動(dòng)詞短語(yǔ)public void Print() {...}public void ProcessItem() {...}Public屬性Pascal規(guī)范名詞或形容詞254。namespace 枚舉Pascal規(guī)范名詞254。標(biāo)識(shí)符規(guī)范命名結(jié)構(gòu) 示例類,結(jié)構(gòu)體Pascal規(guī)范名詞public class ComplexNumber {...}public struct ComplextStruc
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1