我正在使用c#(8.0)切换语句,如下所示:
var operation = 2;
var result = operation switch
{
1 => "Case 1",
2 => "Case 2",
3 => "Case 3",
4 => "Case 4",
_ => "No case available"
};
我想检查一下我们是否可以应用一些常量变量,其中包含一些值来匹配大小写条件-例如:
public static readonly string operation1 = "1";
public static readonly string operation2 = "2";
var result = operation switch
{
operation1 => "Case 1",
operation2 => "Case 2",
_ => "No case available"
};
请让我知道是否有更好的方法来处理这个问题,我不想按照标准硬编码开关语句中的值,我们在一个地方维护常量,并在不同部分的项目中引用它们
可以通过常量模式直接在switch
语句/表达式中使用常量表达式:
const string operation1 = "1";
const string operation2 = "2";
var result = operation switch
{
operation1 => "Case 1",
operation2 => "Case 2",
_ => "No case available"
};
但是如果它是一个变量而不是常量,那么可以使用带case保护的var pattern:
var operation1 = "1";
var operation2 = "2";
var result = operation switch
{
var c1 when c1 == operation1 => "Case 1",
var c2 when c2 == operation2 => "Case 2",
_ => "No case available"
};