如何在选择案例语句中实现枚举
Posted
技术标签:
【中文标题】如何在选择案例语句中实现枚举【英文标题】:How to implement Enum in select case statement 【发布时间】:2014-01-07 18:33:32 【问题描述】:我有一个包含许多项目的枚举,我想在 VB.NET 的 select case 语句中实现这些项目,就像我们在 c#.net 中所做的那样。
就像在 C#.net 中一样,我们只需键入 switch 然后按 Tab 键并键入 enum variable name 并按 enter 在 case 语句中自动输入 enum 的所有项。我在 VB.net 中寻找相同的方法,所以我不需要手动输入所有案例。
在 vb.net 中可以吗?
【问题讨论】:
您在询问 vb.net 中 switch 的等效代码 sn-p .. 是的@NiranjanKala 我正在寻找与我们在 c#.net 中使用的相同 VB.NET Switch Statement GoTo Case的可能重复 如果您真的需要,这是***.com/questions/820104/… 的副本。您可以尝试编写扩展程序,该扩展程序将使用反射获取类型并生成这样的代码,将其复制到剪贴板并粘贴。 不是骗子 - Neeraj 要求使用 sn-p 功能从枚举中快速插入 select case 语句,而不是如何在 vb.net 中编写等效的 switch case,您建议的骗子是关于. 【参考方案1】:不幸的是,没有办法做到这一点。查看 C# sn-p for switch,你可以看到它执行了一个内置函数来获取 case 语句:
<Literal Editable="false">
<ID>cases</ID>
<Function>GenerateSwitchCases($expression$)</Function>
<Default>default:</Default>
</Literal>
然而,VB sn-p 只定义了几个 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
sn-p 来执行相同的值。
我尝试过使用以下内容,但它似乎不想执行评估。无论如何,我怀疑我们最终会在每个案例的末尾加上:
(这是 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#的。
【讨论】:
感谢 Obsidian 的宝贵回复。以上是关于如何在选择案例语句中实现枚举的主要内容,如果未能解决你的问题,请参考以下文章
如何根据在模型级别定义的枚举字段在 Django Modelform 中呈现单选按钮选择?