How to use && operator in switch statement based on a combined return a value?
在开关箱中如何使用
这就是我想做的:
1 2 3 4 5 6 7 8 9 10 11 12 13 | private int retValue() { string x, y; switch (x && y) { case"abc" &&"1": return 10; break; case"xyz" &&"2": return 20; break; } } |
我的问题是,
"operator && cannot be applied to string"
- http://www.dotnetperls.com/switch
- http://msdn.microsoft.com/en-us/library/06tc147t.aspx
您示例中的实际问题是,在
您试图完成的工作可能是同时用一个
在一条评论中,您对长度表示了关注。观察:
1 2 3 4 5 6 | private int retValue(string x, string y) { if (x =="abc" && y =="1") return 10; if (x =="xyz" && y =="2") return 20; throw new Exception("No return value defined for these two strings.") } |
更短,即使您将跳过多余的
尽管已经有一个公认的答案…
为了在
1 2 3 4 5 6 7 8 9 | switch(x + y) { case"abc1": return 10; break; case"xyz2": return 20; break; } |
它起作用。
逻辑
switch语句只能应用于整数值或常量表达式。如果要检查字符串类型变量的条件,则应使用if-else if结构。
你的意思是这样?
1 2 3 4 5 6 7 8 9 | switch (value) { case"abc": case"1": return 10; case"xyz": case"2": return 20; } |