vb.net与c#8中的开关表达式的等价物是什么

vb.net与c#8中的开关表达式的等价物是什么,c#,.net,vb.net,C#,.net,Vb.net,vb.net与c#8中的switch表达式的等价物是什么? 请参阅msdn中的示例代码。当我尝试将其转换为vb.net时,它会显示一条错误消息 公共静态类切换示例 { 公共枚举方向 { 向上的 下来,, 正确的, 左边 } 面向公共枚举 { 北, 南方 东方,, 西部 } 公共静态void Main() { 方向=方向。右; WriteLine($“地图视图方向为{direction}”); 方向=方向开关 { 方位向上=>方位向北, 方向.右=>方向.东, 方位。向下=>方位。向南, 方向。左

vb.net与c#8中的switch表达式的等价物是什么? 请参阅msdn中的示例代码。当我尝试将其转换为vb.net时,它会显示一条错误消息

公共静态类切换示例
{
公共枚举方向
{
向上的
下来,,
正确的,
左边
}
面向公共枚举
{
北,
南方
东方,,
西部
}
公共静态void Main()
{
方向=方向。右;
WriteLine($“地图视图方向为{direction}”);
方向=方向开关
{
方位向上=>方位向北,
方向.右=>方向.东,
方位。向下=>方位。向南,
方向。左=>方向。西,
};
WriteLine($“基数方向为{orientation}”);
}
}

VB中的等价物具有大致相同的复杂度,因此您首先必须考虑使用开关表达式对此的有用性:

Dim orientation As Orientation
Select Case direction
    Case Directions.Up
        orientation = Orientation.North
    Case Directions.Right
        orientation = Orientation.East
    Case Directions.Down
        orientation = Orientation.South
    Case Directions.Left
        orientation = Orientation.West
End Select

查看我对“syntax porn”的评论。

它是一个
Select Case
,它不支持这样的表达式。你可以这样做:
Dim ori As Orientation选择Case direction Case direction.Up ori=Orientation.North End Select
等等。VB.NET的switch语句一直都很强大比C#s。也许它不需要改造。我认为这在C#8中是新的@神秘性:C也没有——这是一个由无聊的语言设计师开发的语法色情的好例子。