yau*_*nka 1 c# c#-8.0 switch-expression
我试图了解 C# 8.0 switch 表达式的工作原理,但有几个问题。
null在默认情况下不能使用值?编译器抛出Cannot convert null to 'int' because it is a non-nullable value type错误。int函数的返回类型是“double?”?这是我正在玩的功能:
public static double? SwitchFunction(int x) =>
x switch
{
1 => 1,
_ => null
};
Run Code Online (Sandbox Code Playgroud)
在 switch 表达式中,所有可能的值必须(隐式转换为)相同类型。因为您的第一种情况是1 => 1,并且您没有将整数文字转换为 以外的类型int,所以其余情况也将被假定int为也是。您需要将 1 强制转换(double?)为让编译器将其余情况也解释为double?可空类型 - 这将解决您的两个问题。