Visual Studio中方法的代码片段

68

在Visual Studio中,我可以输入例如

TAB TAB

然后会出现一个代码片段。

是否也有内置的代码片段来快速输入私有、公共等方法呢?

8个回答

120

您可以使用快捷关键词进行插入,例如通过进入属性面板并设置快捷选项(如“meth”)来实现 meth<Tab><Tab> 的插入。 - bambams
链接到列表的页面显示404错误。 - Felix Martinez
1
@FelixMM 奇怪,它对我进行了重定向。无论如何,我已将其更新到新位置。 - Cameron MacFarland
@CameronMacFarland 太棒了。请更新它,加上2017的链接 :) - Anirudha Gupta
有没有内置的代码片段可以让你像 simsvm 这样做,并允许你通过制表符进行修改? - Samir
它们可以通过 Ctrl + K,Ctrl + X(至少在某些版本的 Visual Studio 中,包括 Visual Studio 2012)进行发现。也许可以将其包含在答案中? - Peter Mortensen

42

您可以下载方法片段作为Visual Studio扩展

它支持以下内容:

method (typical method)

vmethod (virtual method)

smethod (static method)

xmethod (extension method)
  1. 在 Visual Studio 中,转到菜单 工具扩展和更新...

  2. 观察 扩展和更新 窗口

  3. 在搜索字段(右上角)输入 "C# Methods Code Snippets"


1
这是唯一一个真正回答问题的答案 - 有关方法的代码片段(来自问题:“...私有、公共等方法的代码片段。”)。其他答案只是关于代码片段的通用回答。 - Peter Mortensen
我在Visual Studio 2012中尝试了搜索,但没有找到这个扩展。在输入“C#方法代码片段”之前,我选择了“在线”。我查看了每页25个结果的前20页(似乎没有尽头)。但我确实发现了一些有趣的项目:“导入代码片段”,“CodeHelperTools”,“NUnit VS模板”,“StyleCop”,“语言转换”(C# <-> VB.NET),以及“Script#”(从C#转换为JavaScript)。 - Peter Mortensen
"Refactor"(.NET程序集浏览器和反编译器),"kiss!"(基于模板的C#、VB.NET和SQL代码生成器),"WPF MVVM项目模板","T4Awesome","SharpSetup"(WiX,创建安装程序),"Units of Measurements",".NET FTP库"和"Comment"。 - Peter Mortensen

17

如果您想查看所有可用的片段列表:

  • 按下Ctrl + K,然后再按Ctrl + X

只是为了澄清,那是 CTRL + K 然后 CTRL + X。更多信息请参见 如何使用代码片段 (C#) - Samir
@Samir。实际上两者都可以。不过,更新为Microsoft文档所说的内容。 - ANewGuyInTown
没错。这取决于你如何表述它。缺少的是“按住CTRL键”。但这也可以。 - Samir

13

以下是我用于创建 Visual Studio 2010 自定义片段的步骤,但这些步骤也适用于 Visual Studio 2008。

创建一个名为 method.snippet 的新文本文件,并粘贴以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>method</Title>
            <Shortcut>method</Shortcut>
            <Description>Code snippet for method</Description>
            <Author>Kevin Hogg</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>methodname</ID>
                    <ToolTip>Method name</ToolTip>
                    <Function>MethodName()</Function>
                    <Default>MethodNamePlaceholder</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[public void $methodname$ ()
    {
        $end$
    }]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

将文件复制到Windows资源管理器中的代码片段文件夹:

  • Visual Studio 2010:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Visual C#
  • Visual Studio 2008:C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC#\Snippets\1033\Visual C#

保存文件后,代码片段会自动加载,现在您可以打开Visual Studio并输入:

method<tab><tab>

*其中 <tab> 代表您键盘上的 Tab 键。

现在您应该看到已经创建了以下内容,并且 MethodNamePlaceholder 已经被突出显示,以便您可以更改名称。

public void MethodNamePlaceholder()
{

}

请注意,我只能在Visual Studio 2010中测试此内容。 - Kevin Hogg
2
它也在VS2013上工作 路径: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC#\Snippets\1033\Visual C# - zapoo
1
适用于VS2015。谢谢。太棒了,自己动手做。勾选框表示今天学到了新东西。 - Rourke
1
VS2019: C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC#\Snippets\1031\Visual C# - nilsK

9

以下是我使用的一些片段,也在MSDN上提到:

  1. '#if 创建 #if 指令和 #endif 指令。
  2. '#region 创建 #region 指令和 #endregion 指令。
  3. ~ 为包含类创建析构函数。
  4. attribute 创建从 Attribute 派生的类的声明。
  5. checked 创建 checked 块。
  6. class 创建类声明。
  7. ctor 为包含类创建构造函数。
  8. cw 创建对 WriteLine 的调用。
  9. do 创建 do while 循环。
  10. else 创建 else 块。
  11. enum 创建枚举声明。
  12. equals 创建方法声明,覆盖 Object 类中定义的 Equals 方法。
  13. exception 创建从异常 (默认为 Exception) 派生的类的声明。
  14. for 创建 for 循环。
  15. foreach 创建 foreach 循环。
  16. forr 创建递减循环变量的 for 循环。
  17. if 创建 if 块。
  18. indexer 创建索引器声明。
  19. interface 创建接口声明。
  20. invoke 创建一个块,安全地调用事件。
  21. iterator 创建迭代器。
  22. iterindex 通过使用嵌套类创建 “命名” 迭代器和索引器对。
  23. lock 创建 lock 块。
  24. mbox 创建对 MessageBox.Show 的调用。您可能需要添加对 System.Windows.Forms.dll 的引用。
  25. namespace 创建命名空间声明。
  26. prop 创建自动实现属性声明。
  27. propfull 创建具有 get 和 set 访问器的属性声明。
  28. propg 创建带有私有“set”访问器的只读自动实现属性。
  29. sim 创建静态 int Main 方法声明。
  30. struct 创建结构声明。
  31. svm 创建静态 void Main 方法声明。
  32. switch 创建 switch 块。
  33. try 创建 try-catch 块。
  34. tryf 创建 try-finally 块。
  35. unchecked 创建 unchecked 块。
  36. unsafe 创建 unsafe 块。
  37. using 创建 using 指令。
  38. while 创建 while 循环。

它们可以通过 Ctrl + K,Ctrl + X(至少在某些版本的 Visual Studio 中,包括 Visual Studio 2012)进行发现。也许可以将其包含在答案中? - Peter Mortensen

1
我为一个方法制作了自己的代码片段。它的XML代码如下,你可以将其添加到名为“my_method.snippet”(或任何你想要的.snippet)的文件中,该文件位于C:\ Users \ YOUR_USERNAME \ Documents \ Visual Studio 2012 \ Code Snippets \ Visual C#\ My Code Snippets(由于我使用VS2012,你的路径可能不同):
<CodeSnippet Format="1.0.0">
    <Header>
        <Title>method</Title>
        <Shortcut>method</Shortcut>
        <SnippetTypes>
            <SnippetType>Expansion</SnippetType>
        </SnippetTypes>
    </Header>
    <Snippet>
        <Declarations>
            <Literal>
                <ID>access_modifier</ID>
                <Default>private</Default>
            </Literal>
            <Literal>
                <ID>return_type</ID>
                <Default>void</Default>
            </Literal>
            <Literal>
                <ID>name</ID>
                <Default>New_method</Default>
            </Literal>
        </Declarations>
        <Code Language="csharp">
            <![CDATA[$access_modifier$ $return_type$ $name$ ()
    {
    $end$
    }]]>
        </Code>
    </Snippet>
</CodeSnippet>

0

那个链接是关于meth.snippet XML文档格式(.SNIPP)的页面。那远非关于自定义代码片段。我建议添加一个示例和/或更多信息,以使这个答案更有用。 - Peter Mortensen

-2

属性的代码片段如下:

propTABTAB


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接