C# 每字符串函数(IDK它的调用方式)

C# 每字符串函数(IDK它的调用方式),c#,c#-3.0,C#,C# 3.0,我正在做我的C#项目, 我需要这样做,但是没有If,简而言之 for (String = n) do that for (String = s) do those for (String = c) do this 我不知道它是如何调用的,也不知道如果没有长的If函数如何调用。您可以使用,例如,对于名为myString的变量: switch (myString) { case "n": doThat(); break; case "s": doThose();

我正在做我的C#项目, 我需要这样做,但是没有
If
,简而言之

for (String = n) do that
for (String = s) do those
for (String = c) do this
我不知道它是如何调用的,也不知道如果没有长的
If
函数如何调用。

您可以使用,例如,对于名为
myString
的变量:

switch (myString) {
  case "n":
    doThat();
    break;
  case "s":
    doThose();
    break;
  case "c":
    doThis();
    break;
  default:
    doNothing();
    break;
}
如果您的
myString
不是您在特定的
case
语句中考虑到的值,则会出现
default
情况。

您可以简单地使用switch语句:

switch (myString) {
    case "n":
        //...
        break;
    case "s":
        //...
        break;
    case "c":
        //...
        break;
}
但是请注意,使用的
大小写
-字符串是常量区分大小写
还要注意使用
myString.ToLower()
是危险的

如果区分大小写有问题,则必须使用
If
s:

if (string.Compare(myString, "abc", true)==0)) {
    //...
}
else if (string.Compare(myString, "123", true)==0)) {
    //...
}

开关
?不使用
if-else if-else
条件语句有什么逻辑原因?您可能首先不想为此使用
字符串。向前跳,如果
String
是一个
Action
,你可以直接调用它。@Ramhound-因为if东西占用了很多代码行,这是一个混乱的。。。当人们引导我时,开关快速、短且有效。我使用IF语句“字符串……不区分大小写”(sic)时遇到了太多错误。请你把那句话支持一下好吗?C对于使用
=
进行字符串比较是区分大小写的,而
开关是@AndyBrown:对不起,我的错!谢谢这就是我一直在寻找的^ ^和乔说的一样。。。谢谢@TDTα。哈哈,除非我先回答;)这是如此的预言(NVM,我的运气和信念就像这个案例)。。谢谢你们两位!!!