【发布时间】:2020-10-17 01:43:59
【问题描述】:
c# 8 中 switch 表达式的 vb.net 等效项是什么? 请参阅 msdn 中的此示例代码。当我尝试将其转换为 vb.net 时,它显示一条错误消息。
public static class SwitchExample
{
public enum Directions
{
Up,
Down,
Right,
Left
}
public enum Orientation
{
North,
South,
East,
West
}
public static void Main()
{
var direction = Directions.Right;
Console.WriteLine($"Map view direction is {direction}");
var orientation = direction switch
{
Directions.Up => Orientation.North,
Directions.Right => Orientation.East,
Directions.Down => Orientation.South,
Directions.Left => Orientation.West,
};
Console.WriteLine($"Cardinal orientation is {orientation}");
}
}
【问题讨论】:
-
它是
Select Case,它不支持这样的表达式。 -
你可以为每个人做类似的事情:
Dim ori As Orientation Select Case direction Case Direction.Up ori = Orientation.North End Select等等。 -
VB.NET 的 switch 语句一直比 C# 更强大。也许它不需要改造。
-
我认为这是 C# 8 中的新功能。docs.microsoft.com/en-us/dotnet/csharp/whats-new/…
-
@Enigmativity:C# 也没有——这是无聊的语言设计师开发的语法色情的一个很好的例子。