c#切换用常量值作为大小写条件



我正在使用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"  
}; 

最新更新