VS中如何快捷地給自己的代碼添加創建信息註釋

来源:http://www.cnblogs.com/ben121011/archive/2016/10/17/5970053.html
-Advertisement-
Play Games

VS中如何快捷地給自己的代碼添加創建信息註釋 Intro 以下討論的都是沒有使用 GIT 來管理源代碼的情況,如果使用 GIT 管理源代碼可直接使用VS的Git擴展就不需要考慮以下問題。 什麼是創建信息註釋? 創建信息註釋,類似於文件的創建信息,一般來說,至少要有創建人和創建時間。如果說有人修改了方 ...


VS中如何快捷地給自己的代碼添加創建信息註釋

Intro

以下討論的都是沒有使用 GIT 來管理源代碼的情況,如果使用 GIT 管理源代碼可直接使用VS的Git擴展就不需要考慮以下問題。

  1. 什麼是創建信息註釋?

    創建信息註釋,類似於文件的創建信息,一般來說,至少要有創建人和創建時間。如果說有人修改了方法也應該添加一個更新信息註釋。

  2. 為什麼要添加創建信息註釋?

    可能在一個人編碼的時候,創建信息註釋並不太重要,但是如果許多人共同維護一個項目,並且經常會出現多個人修改同一個文件的代碼 時,這就顯得很重要了,哪裡的代碼出現了什麼問題,可以直接責任到人,誰改的代碼出現了問題就應該誰去修改代碼。

創建信息註釋

  1. 找解決方案 最初的想法是重寫 VS 內置的文檔註釋,然而並沒有找到這樣的解決方案。找到的基本都是修改新建類或介面時模板文件從而添加註釋,並沒有在方法上加註釋 的解決方案。

    這個方案否定之後,嘗試著使用自定義代碼段來實現在生成註釋的基礎上再添加創建信息註釋。

  2. 自定義代碼段

    自定義代碼段參考示例:

     1         <?xml version="1.0" encoding="utf-8"?>
     2         <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
     3             <CodeSnippet Format="1.0.0">
     4                 <Header>
     5                     <Title>cm</Title>
     6                     <Shortcut>cm</Shortcut>
     7                     <Description>新建代碼註釋 的代碼片段</Description>
     8                     <Author>liweihan</Author>
     9                     <SnippetTypes>
    10                         <SnippetType>Expansion</SnippetType>
    11                     </SnippetTypes>
    12                 </Header>
    13                 <Snippet>
    14                     <Declarations>
    15                         <Literal>
    16                             <ID>Description</ID>
    17                             <ToolTip>方法描述</ToolTip>
    18                             <Default>方法描述</Default>
    19                         </Literal>
    20                         <Literal>
    21                             <ID>Author</ID>
    22                             <ToolTip>作者</ToolTip>
    23                             <Default>liweihan</Default>
    24                         </Literal>
    25                         <Literal>
    26                             <ID>CreateDate</ID>
    27                             <ToolTip>日期</ToolTip>
    28                             <Default>@@Today</Default>
    29                         </Literal>
    30                     </Declarations>
    31                     <Code Language="csharp">
    32                     <![CDATA[/// <summary>
    33                     /// $Description$
    34                     /// @Author:$Author$
    35                     /// @CreateDate:$CreateDate$$end$
    36                     /// </summary>]]>
    37                     </Code>
    38                 </Snippet>
    39             </CodeSnippet>
    40         </CodeSnippets>

     

     

     這樣的代碼段還有許多不足,現在作者是寫死的,創建時間需要再插入代碼段之後再進行手動修改, 我希望能夠自動生成作者和當前日期, 作者寫死的問題不大,因為這個代碼段只我一個人使用,直接寫死反而更方便,這裡使用一個變數方便進行修改, 關鍵是當前日期沒有辦法獲取到,查閱了很多資料,代碼段並不支持直接插入當前日期,stackoverflow 上有人討論過這個問題,解決方案是利用巨集自動生成當前日期,但是文中提到的解決方案不可用,不過倒給了我解決問題的思路——利用巨集去插入當前日期。

  3. 巨集插入當前日期 我在 VS 的 擴展與更新 中下載了一個 管理巨集的插件—— Macros for Visual studio

     

    下載安裝之後需要重啟 VS ,重啟之後在 菜單欄中的工具下就可以看到:

     

    這個巨集管理器自帶了一些 Samples ,其中有一個可以插入日期的巨集

     

    選擇 Assign Shortcut 進行設置快捷鍵就可以在 VS 中使用啦,預設的格式是 “mm/dd/yyyy”

     

    如果你像我一樣不喜歡預設的日期格式,可以在對應項上右鍵選擇“打開”,進行編輯,裡面是 js 代碼,有一些 js 基礎的話修改起來會 更方便,我修改了下代碼,將日期格式修改為了“yyyy-MM-dd”格式。

     

  4. 完整操作流程

    • 首先,在方法體上輸入“///”,VS 會自動生成預設的文檔註釋,先寫好註釋
    • 複製<summary>部分的註釋,選中 <summary> 部分,參數及返回信息保留,輸入定義好的代碼段快捷鍵,雙擊 Tab 鍵插入代碼段
    • 將複製的註釋粘貼到 方法描述 處,添加註釋
    • Tab 鍵切換到 當前日期,在 @@Today 處,按設置的插入當前日期的巨集快捷鍵,VS 會自動插入當前日期

更新信息註釋

更新信息代碼段示例:

 1   <?xml version="1.0" encoding="utf-8"?>
 2     <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 3         <CodeSnippet Format="1.0.0">
 4             <Header>
 5                 <Title>up</Title>
 6                 <Shortcut>up</Shortcut>
 7                 <Description>更新代碼註釋 的代碼片段</Description>
 8                 <Author>liweihan</Author>
 9                 <SnippetTypes>
10                     <SnippetType>Expansion</SnippetType>
11                 </SnippetTypes>
12             </Header>
13             <Snippet>
14                 <Declarations>
15                     <Literal>
16                         <ID>Description</ID>
17                         <ToolTip>更新描述</ToolTip>
18                         <Default>更新描述</Default>
19                     </Literal>
20                     <Literal>
21                         <ID>UpdatedBy</ID>
22                         <ToolTip>更新人</ToolTip>
23                         <Default>liweihan</Default>
24                     </Literal>
25                     <Literal>
26                         <ID>UpdatedDate</ID>
27                         <ToolTip>日期</ToolTip>
28                         <Default>@@Today</Default>
29                     </Literal>
30                 </Declarations>
31                 <Code Language="csharp">
32                 <![CDATA[/// $Description$ @UpdatedBy:$UpdatedBy$ @UpdatedDate:$UpdatedDate$$end$ ]]>
33                 </Code>
34             </Snippet>
35         </CodeSnippet>
36     </CodeSnippets>

 

 

 

將自定義代碼段添加到 VS

  • VS 中打開代碼段管理器

 

 

  • 選擇語言為 “CSharp”,選中“My Code Snippets”,複製位置中的路徑,併在資源管理器中打開路徑
  • 將自定義的代碼段(*.snippet)拷貝到上一步打開的目錄中,重啟VS就可以了

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 匿名函數一個“內聯”語句或表達式,可在需要委托類型的任何地方使用。可以使用匿名函數來初始化命名委托,或傳遞命名委托(而不是命名委托類型)作為方法參數。 共有兩種匿名函數: Lambda表達式(在這裡只舉例在Lambda表達式在委托中的應用) 匿名方法 Lambda表達式是一種可用於創建委托或表達式目 ...
  • ASP.NET Aries 4.0 主要更新如下:1:增加AR.Global.GetUser() 方法返回當前登陸者的用戶信息。2:重寫AR.Combobox 支持下拉樹。3:調整及擴展Input下拉的配置參數。4:優化及新增AR.Combobox相關的方法。5:重寫層級表頭的配置及演算法。6:擴展下... ...
  • 1、概覽 1.1、介紹 ...
  • 上大學時學校開過一門課程就是數據結構,當時學的似懂非懂,不知道它的重要性,現在工作了,想撿起來,所以重新買了本書,重溫數據結構,我自己會記錄整個學習的過程,有興趣的同學可以一起。 今天剛看到基礎篇,也記錄下來,方便日後查看和再次回顧。 <一>你需要知道的一些名詞定義: 1.數據:數據是對客觀事物的符 ...
  • 為.net core 配一個基於html5的UI框架 傳送門:TchApp項目說明 ...
  • [ASP.NET Core] Getting Started 前言 本篇文章介紹如何快速建立一個ASP.NET Core應用程式,為自己留個紀錄也希望能幫助到有需要的開發人員。 ASP.NET Core官網 環境 建立一個ASP.NET Core應用程式,首先要從官網下載SDK來建置.NET Cor ...
  • 枚舉類型是定義了一組“符號名稱/值”配對。枚舉類型是強類型的。每個枚舉類型都是從system.Enum派生,又從system.ValueType派生,而system.ValueType又從system.Object派生,所以枚舉類型是指類型。 編譯枚舉類型時,C#編譯器會把每個符號轉換成類型的一個常 ...
  • 上一章我們講到關於C#線程方向的應用。但是筆者並沒有講到多線程中的另一個知識點——同步。多線程的應用開發都有可能發生臟數據。同步的功能或多或少都會用到。本章就要來講一下關於線程同步的問題。根據筆者這幾年來的.NET開發可以瞭解到的同步方式至少有四種以上。如。lock、volatile、Monitor ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...