我有一个包含很多项的枚举,我想在VB.NET的select case语句中实现,就像在c#.net中一样。
与C#.net类似,我们只需输入开关,然后点击标签键并输入枚举变量名称,然后点击输入键自动枚举的所有项目在案例陈述中被扼杀。我在VB.net中寻找相同的方式,所以我不需要手动输入所有情况。
是否可以在vb.net中使用?
答案 0 :(得分:5)
不幸的是没有办法内置这个。看看C#snippet for switch,你可以看到它执行内置函数来获取case语句:
<Literal Editable="false">
<ID>cases</ID>
<Function>GenerateSwitchCases($expression$)</Function>
<Default>default:</Default>
</Literal>
但是,VB片段只定义了几个Case Literals:
<Literal>
<ID>Case1</ID>
<Type></Type>
<ToolTip>Replace with a valid value of the expression.</ToolTip>
<Default>1</Default>
</Literal>
<Literal>
<ID>Case2</ID>
<Type></Type>
<ToolTip>Replace with another valid value of the expression.</ToolTip>
<Default>2</Default>
</Literal>
不幸的是,您无法定义要在代码段内使用的自定义函数,因此您只剩下默认函数,而GenerateSwitchCases似乎在VB中不起作用。这意味着您甚至无法定义自己的Select Case
代码段,该代码段将执行相同的值。
我尝试过使用以下内容,但似乎并不想进行评估。无论如何,我怀疑在每个案例的最后都是:
(这是C#表示法)。
<?xml version="1.0" encoding="UTF-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Select Case Statement</Title>
<Author>Microsoft Corporation</Author>
<Description>Inserts a Select Case statement.</Description>
<Shortcut>NewSelect</Shortcut>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Imports>
</Imports>
<Declarations>
<Literal>
<ID>expression</ID>
<ToolTip>Expression to switch on</ToolTip>
<Default>switch_on</Default>
</Literal>
<Literal Editable="false">
<ID>cases</ID>
<Function>GenerateSwitchCases($expression$)</Function>
<Default>Case Else</Default>
</Literal>
</Declarations>
<Code Language="VB" Kind="method body"><![CDATA[Select Case $expression$
$Cases$
End Select]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
签出MSDN,您可以看到只有几个Snippet功能,而且它们都只是C#。