C# 递归模式功能当前在Visual studio 2019预览中

C# 递归模式功能当前在Visual studio 2019预览中,c#,visual-studio-2019,C#,Visual Studio 2019,功能递归模式当前处于预览中,若要使用预览功能,请选择“预览版本” 我没有使用任何新的东西。这是一般的场景,我们一直像这样使用它进行枚举 TransactionType是一个枚举 我也浏览了这篇文章,发现它没有用 我需要在swith语句中使用enum,但我无法使用它。 在那方面有人能帮我吗 如果你问“为什么这不管用”?我不确定您是否一直这样使用它,因为case需要一个常量值: 使用enum.Parse或enum.TryParse将您收到的字符串TransactionReceived解析为Tran

功能递归模式当前处于预览中,若要使用预览功能,请选择“预览版本”

我没有使用任何新的东西。这是一般的场景,我们一直像这样使用它进行枚举

TransactionType
是一个枚举

我也浏览了这篇文章,发现它没有用

我需要在swith语句中使用enum,但我无法使用它。 在那方面有人能帮我吗

如果你问“为什么这不管用”?我不确定您是否一直这样使用它,因为
case
需要一个常量值:

使用
enum.Parse
enum.TryParse
将您收到的字符串
TransactionReceived
解析为TransactionType枚举,然后从案例中删除
ToString()
,可能类似于:

    var x = "Whatever";
    if(Enum.TryParse<TransactionType>(x, out xEnum)){
      switch(xEnum){
        case TransactionType.Whatever:
          break;
      }
    }
var x=“随便什么”;
if(枚举TryParse(x,out xEnum)){
开关(xEnum){
案例交易类型。无论什么:
打破
}
}
注: *
xEnum
在if的范围内

  • Enum.IsDefined
    可以与
    Enum.Parse
    结合使用(但我发现tryparse更简洁)

您有问题吗?您的case值不是const,因此您确实在尝试使用一个新功能。该代码没有使用enum,而是打开字符串。删除.ToString()可能是获得成功的方法。是的,你是对的,Caius。我做错了。谢谢你的帮助
    var x = "Whatever";
    if(Enum.TryParse<TransactionType>(x, out xEnum)){
      switch(xEnum){
        case TransactionType.Whatever:
          break;
      }
    }