C# 命名規范

  • 開頭
    • `bool`類型的變量
    • 常用縮寫
  • 變量命名規范
    • `camelCase`: 私有字段,局部變量,入參
    • `PascalCase`: 命名空間、類名,方法名
    • `snake_ case`、 `kebab_case:` 不使用
  • 一般方法
    • 名稱遵守`PascalCase`命名規范
    • 例外情況:
  • 異步方法
    • 異步方法
    • 例外情況
  • 合理選擇單詞
    • 選擇最合適且被廣泛接受的單詞描述某個意思
    • 避免使用過于寬泛或與標準庫重名的詞匯
    • 布爾類型的成員一般以ls、Has、 Can開頭
    • 使用偏正式的單詞,而不是口語化的單詞
  • 語法與時態
    • 一般使用第三人稱單數(可以考慮使用`復數`形式)
    • 盡量不要使用單復數不符合常見形式的(可適當`違背`詞匯或語法)
    • 考慮時態習慣
  • 更多... ...
    • 名稱寫清晰且完整(例外情形需遵守普遍習慣)
    • 擴展方法盡量簡潔且清晰
    • 符合經典命名習慣
    • 杜絕C/C++、MATLAB、 JAVA等命名習慣
  • 學習與提高

開頭

bool類型的變量

Is或者Has開頭

常用縮寫

三個字母以下的全大寫,超過的首字母大寫,三個字母的都行(WPF Wpf


變量命名規范

camelCase: 私有字段,局部變量,入參

  • _camelCase: 使用依賴注入時更為推薦
    一看到 _ 就知道是私有字段

  • s_ camelCasem_ camelCase: 一般不使用
    s開頭staticm開頭membert開頭temp

  • @bool@object: 使用關鍵字作為名稱
    C#的特殊用法,可以把關鍵字,類名作為名稱

PascalCase: 命名空間、類名,方法名

  • IPascalCase:接口名
  • TPascalCase:泛型類型名
  • PascalCaseAttribute: 特性
  • PascalCaseProperty:依賴屬性

snake_ casekebab_case: 不使用


一般方法

名稱遵守PascalCase命名規范

  • 無論是否為公共方法,均首字母大寫
  • 選擇合適的動詞(或動詞+名詞)
  • 非公共方法可為名稱添加InternalImplimplementation)等字眼

例外情況:

  • 局部方法
  • 用于注冊事件的方法(Window_ Loaded)

異步方法

異步方法

異步方法以Async結尾

  • 和同名的同步方法進行區分
  • 便于快速判斷調用的方法是否需要等待

例外情況

  • 人盡皆知的方法(Task. DelayTask.WhenAll)
  • 控制器(Controller) 中的方法

合理選擇單詞

選擇最合適且被廣泛接受的單詞描述某個意思

  • Order應該用于排序(orderby), 而不是用于命令
  • Apply用于表達“應用”, 而不是“申請”
  • Command常用于名詞而非動詞

避免使用過于寬泛或與標準庫重名的詞匯

  • CoreMainActionMath

布爾類型的成員一般以ls、Has、 Can開頭

  • IsValidlsActiveHasErrorsCanExecute
  • IfSuccessChecklfEmpty 錯誤的例子

使用偏正式的單詞,而不是口語化的單詞

  • Visibility vs. SeenSelectionOption vs. Choose vs.前面的好

語法與時態

一般使用第三人稱單數(可以考慮使用復數形式)

  • EqualslsEqualAreEqualDependsOn

盡量不要使用單復數不符合常見形式的(可適當違背詞匯或語法)

  • PersonsPersonList vs. People
  • InfosDatasData 的單數是Datum

考慮時態習慣

  • OnPropertyChangedClosing & Closed

更多… …

名稱寫清晰且完整(例外情形需遵守普遍習慣)

  • CancellationTokenSourceOperationCanceledException
  • IsCompletedSuccessfully
  • SendCaches vs. SendAllCachedUserData

擴展方法盡量簡潔且清晰

  • this byte[]: BytesTolnt vs. Tolnt32

符合經典命名習慣

  • TryGetValueTryParseThrowlfNullTryXxxxout的參數,用于在成功后把巴拉巴拉直接賦值給傳入的變量)
  • Color vs. ColourBehavior vs. Behaviour (符合習慣的,項目的,英式或美式)

杜絕C/C++、MATLAB、 JAVA等命名習慣

  • itoanum2strget_value

學習與提高

  • 多查詞典
  • 多看多學別人的代碼
  • 在源代碼中搜索官方的使用習慣

谷歌的C#

微軟C#

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42636.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42636.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42636.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CSS】縮寫屬性place-items

place-items 是 CSS 中的一個簡寫屬性,它允許在相關的布局(如 Grid 或 Flexbox)中同時沿著塊級和內聯方向對齊元素。這個屬性是 align-items 和 justify-items 屬性的簡寫形式。如果未提供第二個值,則第一個值將作為第二個值的默認…

論文翻譯 | (DSP)展示-搜索-預測:為知識密集型自然語言處理組合檢索和語言模型

摘要 檢索增強式上下文學習已經成為一種強大的方法,利用凍結語言模型 (LM) 和檢索模型 (RM) 來解決知識密集型任務。現有工作將這些模型結合在簡單的“檢索-讀取”流程中,其中 RM 檢索到的段落被插入到 LM 提示中。 為了充分發揮凍結 LM 和 RM 的…

ARM/Linux嵌入式面經(十一):地平線嵌入式實習

地平線嵌入式實習面經 1.自我介紹 等著,在給大哥們準備了。 2.spi與iic協議可以連接多個設備嗎?最多多少個?通訊時序。 這是幾個問題,在回答的時候。不要一問就開口,花幾秒鐘沉吟思考整理一下自己的思路。 這個問題問了幾個點?每個點的回答步驟。 是我的話,我會采用以…

# Sharding-JDBC 從入門到精通(9)- 綜合案例(二)添加商品

Sharding-JDBC 從入門到精通(9)- 綜合案例(二)添加商品 一、Sharding-JDBC 綜合案例-添加商品-dao 1、在 shopping 子工程(子模塊)中,創建 dao 接口類 ProductDao.java /*** dbsharding\sh…

基于深度學習LightWeight的人體姿態之行為識別系統源碼

一. LightWeight概述 light weight openpose是openpose的簡化版本,使用了openpose的大體流程。 Light weight openpose和openpose的區別是: a 前者使用的是Mobilenet V1(到conv5_5),后者使用的是Vgg19(前10…

哈希表——C語言

哈希表(Hash Table)是一種高效的數據結構,能夠在平均情況下實現常數時間的查找、插入和刪除操作。 哈希表的核心是哈希函數,哈希函數是一個將輸入數據(通常稱為“鍵”或“key”)轉換為固定長度的整數的函數…

Efficient Contrastive Learning for Fast and Accurate Inference on Graphs

發表于:ICML24 推薦指數: #paper/??? 創新點一顆星,證明三顆星(證明的不錯,值得借鑒,但是思路只能說還行吧) 如圖, 本文采取的創新點就是MLP用原始節點,GCN用鄰居節點的對比學習.這樣,可以加快運算速度 L E C L ? 1 ∣ V ∣ ∑ v ∈ V 1 ∣ N ( v ) ∣ ∑ u ∈ N ( v )…

一篇文章Scala語言入門

Scala是一種現代編程語言,它結合了面向對象編程和函數式編程的特性,使得編寫簡潔、可擴展和高效的代碼成為可能。 1. 什么是Scala? Scala(Scalable Language)是一種面向對象和函數式編程語言。它運行在JVM&#xff0…

k8s 部署 springboot 項目內存持續增長問題分析解決

寫在前面 工作中遇到,請教公司前輩解決,簡單整理記憶博文內容涉及一次 GC 問題的分析以及解決理解不足小伙伴幫忙指正 😃,生活加油 99%的焦慮都來自于虛度時間和沒有好好做事,所以唯一的解決辦法就是行動起來,認真做完…

語音識別FBank特征提取學習筆記

語音識別就是把一段語音信號轉換成對應的文本信息,這一過程包括四個大的模塊,分別是:特征提取、聲學模型、語言模型、字典與解碼。 本篇就來梳理一下特征提取模塊的實現思路和方法。 常用的語音特征有: 梅爾頻率倒譜系數&#x…

學生管理系統(通過順序表,獲取連續堆區空間實現)

將學生的信息,以順序表的方式存儲(堆區),并且實現封裝函數 : 1】順序表的創建, 2】判滿、 3】判空、 4】往順序表里增加學生信息、 5】遍歷學生信息 6】任意位置插入學生信息 7】任意位置刪除學生信…

0301STM32GPIO外設輸出

STM32GPIO外設輸出 STM32內部的GPIO外設GPIO簡介基本結構GPIO位結構輸入部分:輸出部分: GPIO八種工作模式浮空/上拉/下拉輸入模擬輸入開漏/推挽輸出復用開漏/推挽輸出 手冊寄存器描述GPIO功能描述外設的GPIO配置GPIO寄存器描述端口輸入數據寄存器端口輸出…

QT入門筆記-自定義控件封裝 30

具體代碼如下: QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 …

并查集(還有反集也在)

一.定義 定義: 并查集是一種樹型的數據結構,用于處理一些不相交集合的合并及查詢問題(即所謂的并、查)。比如說,我們可以用并查集來判斷一個森林中有幾棵樹、某個節點是否屬于某棵樹等。 主要構成: 并查集…

PHP-實例-文件上傳

1 需求 2 basename 在 PHP 中,basename() 函數用于返回路徑中的文件名部分。如果路徑中包含了文件擴展名,則該函數也會返回它。如果路徑的結尾有斜杠(/)或反斜杠(\),則 basename() 函數會返回空…

Android計算器界面的設計——表格布局TableLayout實操

目錄 任務目標任務分析任務實施 任務目標 使用TextView、Button等實現一個計算器界面,界面如圖1所示。 圖1 計算器界面效果圖 任務分析 界面整體使用表格布局,第一行使用一個TextView控件,橫跨4列,中間4行4列,最后一…

Laravel HTTP客戶端:網絡請求的瑞士軍刀

標題:Laravel HTTP客戶端:網絡請求的瑞士軍刀 Laravel的HTTP客戶端是一個功能強大的工具,它提供了一種簡潔、直觀的方式來發送HTTP請求。無論是與外部API集成,還是進行網絡數據抓取,Laravel的HTTP客戶端都能滿足你的需…

小紅書選品中心商家采集 小紅書商家電話采集軟件

可采集名稱銷量評分聯系方式等 需要有1000粉絲以上已實名認證過的小紅書達人才可以使用 以下是一個示例程序,可以用于批量獲取小紅書選品中心商家的信息: import requestsdef get_merchants(page_num):url f"https://www.xiaohongshu.com/selec…

git 添加本地分支, clean

//以develop為源創建本地分支fromdevelop git checkout -b fromdevelop git add . git commit -m "local" git checkout -b local/dev //切換到遠程分支. git checkout dev git clean_git clean -f -d-CSDN博客 git clean -f -d #刪除當前目錄下沒有被track…

RAC spfile 坑 +data INSTANCE_NUMBER thread x is mounted by another instance

RAC相關三個參數 thread reset 就可以默認 instance_number 需要單獨設置 sid‘SIDX’ cluster_database boolean TRUE SQL> alter system reset instance_number sid* scopespfile; alter system reset instance_number sid* scopespfile …