转到您的默认 C# 代码片段位置,通常在C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Visual C#并将ctor.snippet的副本复制到您的个人代码片段位置,重命名它,并给它一个正确的名称和快捷键。然后更改声明(查看其他现有声明),类似下面的内容可以完成这项工作。一旦你创建了它,你可以简单地svc + TAB
在一个空的类文件中输入(或者你选择的任何快捷方式然后选项卡),你应该得到内容填充,或者你可以自定义一个类模板,所以当你添加新的时,您可以选择新模板。
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Some Constructor</Title>
<Shortcut>svc</Shortcut>
<Description>my description</Description>
<Author>Jason was here</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>accessor</ID>
<ToolTip>Access modifier</ToolTip>
<Default>public</Default>
</Literal>
<Literal Editable="false">
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Function>ClassName()</Function>
<Default>ClassNamePlaceholder</Default>
</Literal>
<Literal Editable="true">
<ID>svcA</ID>
<ToolTip>Service A</ToolTip>
<Default>ServiceA</Default>
</Literal>
<Literal Editable="true">
<ID>svcAvar</ID>
<ToolTip>Service A</ToolTip>
<Default>serviceA</Default>
</Literal>
<Literal Editable="true">
<ID>svcB</ID>
<ToolTip>Service B</ToolTip>
<Default>ServiceB</Default>
</Literal>
<Literal Editable="true">
<ID>svcBvar</ID>
<ToolTip>Service B</ToolTip>
<Default>serviceB</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[readonly $svcA$ $svcAvar$;
readonly $svcB$ $svcBvar$;
$accessor$ $classname$ ($svcA$ serviceA, $svcB$ serviceB)
{
this.$svcAvar$ = serviceA;
this.$svcBvar$ = serviceB
}$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
在上面我们声明了 classes svcA = ServiceA
、svcB = ServiceB
和 class 变量的变量svcAvar = serviceA
和svcBvar = serviceB
,所以我们可以很容易地在一个位置修改,你可以在构造函数中为 params 创建更多等等,但应该足以让你开始。
关于参数的可变数量,您可以使用默认的参数文字,然后让您在插入 ctor 后键入所需的任何参数,如果您有不同的类级别变量,那么就像其他人所说的那样,创建几个不同的片段快捷方式,例如svc、svc1、svc2、svc3等
<Literal>
<ID>params</ID>
<ToolTip>Parameter list</ToolTip>
<Default></Default>
</Literal>
然后...<![CDATA[$accessor$ $classname$ (...$params$)