程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Visual Studio 如何使用代碼片段Code Snippet提高編程速度!!!,

Visual Studio 如何使用代碼片段Code Snippet提高編程速度!!!,

編輯:關於.NET

Visual Studio 如何使用代碼片段Code Snippet提高編程速度!!!,


 

使用Code Snippet簡化Coding  在開發的項目的時候,你是否經常遇到需要重復編寫一些類似的代碼,比如是否經常會使用 for、foreach ? 在編寫這兩個循環語句的時候,你是一個字符一個字符敲還是使用 Visual Studio 提供的Code Snippet 工具自動幫你生成呢?
神奇之處
  你只需要在代碼編輯器中輸入for,就會看到 Visual Studio 的自動提示框中出現了如下紅框框起來的部分,這個時候只需要連按兩下 tab 鍵,便會自動補全 for 循環語句(如圖2所示),並且默認選中索引,以便你進行修改。


圖 1  自動提示框


圖 2  自動補全循環語句
  是不是很神奇? 與之類似的還有switch、cw (Console.WriteLine)、ctor(構造器)、prop(屬性)等,靈活運用這些就可以讓你的 Coding 工作事半功倍,更多默認 CodeSnippet 請查看參考資源[1]。
  但是,每個項目都有每個項目的特殊性,默認的這些 Code Snippet 如果無法滿足您的需求,這個時候就需要自動動手來擴展了。
Code Snippet 的神秘面紗【C#】
  在動手開始寫自己的 Code Snippet 之前,得先搞清楚這個玩意兒是怎麼做到的。
  它其實只是一個 xml,只不過包含了一些只有 Visual Studio 才認識的元素,這些元素就定義了如何去替我們補全代碼(,Code Snippet 針對不同的語言如VB、C#、CSS使用不同的元素,本文全部按照 C# 語言進行介紹)。

 

attribute.Snippet 文件源碼  :C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Snippets\2052\Visual C#   

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>attribute</Title>
            <Shortcut>Attribute</Shortcut>
            <Description>使用建議模式的特性的代碼片段</Description>
            <Author>Microsoft Corporation</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>name</ID>
                    <ToolTip>特性的名稱</ToolTip>
                    <Default>My</Default>
                </Literal>
                <Literal>
                    <ID>target</ID>
                    <Default>All</Default>
                </Literal>
                <Literal>
                    <ID>inherited</ID>
                    <Default>false</Default>
                </Literal>
                <Literal>
                    <ID>allowmultiple</ID>
                    <Default>true</Default>
                </Literal>
                <Literal Editable="false">
                    <ID>SystemAttribute</ID>
                    <Function>SimpleTypeName(global::System.Attribute)</Function>
                </Literal>
                <Literal Editable="false">
                    <ID>SystemAttributeUsage</ID>
                    <Function>SimpleTypeName(global::System.AttributeUsage)</Function>
                </Literal>
                <Literal Editable="false">
                    <ID>SystemAttributeTargets</ID>
                    <Function>SimpleTypeName(global::System.AttributeTargets)</Function>
                </Literal>
                <Literal Editable="false">
                    <ID>Exception</ID>
                    <Function>SimpleTypeName(global::System.NotImplementedException)</Function>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[[$SystemAttributeUsage$($SystemAttributeTargets$.$target$, Inherited = $inherited$, AllowMultiple = $allowmultiple$)]
sealed class $name$Attribute : $SystemAttribute$
{
    // See the attribute guidelines at
    //  http://go.microsoft.com/fwlink/?LinkId=85236
    readonly string positionalString;
    
   // This is a positional argument
   public $name$Attribute (string positionalString)
   {
        this.positionalString = positionalString;
        
       // TODO: Implement code here
       $end$throw new $Exception$();       
   }
   
    public string PositionalString
    {
        get { return positionalString; }
    }
   
   // This is a named argument
   public int NamedInt { get; set; }
}]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

待續。。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved