Leo*_*rdo 1 c# design-patterns
我有以下条件一个类和一个方法
public class ReturnParameter
{
public string v1 {get; set;}
public string v2 {get; set;}
public string v3 {get; set;}
}
public string RideCombination(ReturnParameter retor)
{
var v1 = retor.v1;
var v2 = retor.v2;
var v3 = retor.v3;
// case 1
if(v1 == "A" && v2 == "b" && v3 == "C" )
return "valid 1 "
// case 2
if(v1 == "C" && v2 == "A" && v3 == "C" )
return "valid 2 "
// case 3
if(v1 == "D" && v2 == "T" && v3 == "C" )
return "valid 3 "
// case 4
if(v1 == "A" && v2 == "B" && v3 == "C" )
return "valid 4 "
}
Run Code Online (Sandbox Code Playgroud)
假设我有 20 个条件我将不得不 20 个 ifs 来返回 20 个不同的组合,有什么办法可以消除多个条件而不必一一执行?
您可以使用值元组和返回值的字典:
var mapping = new Dictionary<(string, string, string), string>
{
[("A", "b", "C")] = "valid 1",
// ...
};
if (mapping.TryGetValue((retor.v1, retor.v2, retor.v3), out var result))
{
return result;
}
else
{
// when none match...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |