В VB.NET нет эквивалента, который я мог бы найти. Для этого фрагмента кода вы, вероятно, захотите открыть его в Reflector и изменить тип вывода на VB, чтобы получить точную копию кода, который вам нужен. Например, когда я добавляю в Reflector следующее:
switch (args[0])
{
case "UserID":
Console.Write("UserID");
break;
case "PackageID":
Console.Write("PackageID");
break;
case "MVRType":
if (args[1] == "None")
Console.Write("None");
else
goto default;
break;
default:
Console.Write("Default");
break;
}
это дало мне следующий вывод VB.NET.
Dim CS$4$0000 As String = args(0)
If (Not CS$4$0000 Is Nothing) Then
If (CS$4$0000 = "UserID") Then
Console.Write("UserID")
Return
End If
If (CS$4$0000 = "PackageID") Then
Console.Write("PackageID")
Return
End If
If ((CS$4$0000 = "MVRType") AndAlso (args(1) = "None")) Then
Console.Write("None")
Return
End If
End If
Console.Write("Default")
Как вы можете видеть, вы можете выполнить ту же инструкцию переключения регистра с помощью операторов If. Обычно я не рекомендую это, потому что это усложняет понимание, но VB.NET, кажется, не поддерживает ту же функциональность, и использование Reflector может быть лучшим способом получить код, необходимый для его работы без много боли.
Обновление:
Только что подтвердил, что вы не можете делать то же самое в VB.NET, но он поддерживает некоторые другие полезные вещи. Похоже, конверсия оператора IF - это ваша лучшая ставка, или, может быть, какой-то рефакторинг. Вот определение для Select ... Case
http://msdn.microsoft.com/en-us/library/cy37t14y.aspx