尝试在 C# 中使用 switch 语句

本文关键字:switch 语句 | 更新日期: 2023-09-27 18:17:10

我正在检查文本框控件"txtType"中的一个值,我有 3 个可能的值:它是 TypeA、TypeB 或 TypeC。 所以我想做的是:这就是我到目前为止所拥有的

string myType= ((TextBox)DV_LogAdd.FindControl("txtType")).Text.ToString();
int  updatedType;
If string myType = ‘TypeA’ then set updatedType to 1
If string myType = ‘TypeB’ then set updatedType to 2
If string myType = ‘TypeC’ then set updatedType to 3

我尝试使用switch语句,但搞砸了。

尝试在 C# 中使用 switch 语句

试试这个:

        string myType= ((TextBox)DV_LogAdd.FindControl("txtType")).Text.ToString();
        int updateType = 0;
        switch (myType)
        {
            case "TypeA":
                updateType = 1;
                break;
            case "TypeB":
                updateType = 2;
                break;
            case "TypeC":
                updateType = 3;
                break;
            default :
                throw new ArgumentException("txtType value not supported :"+myType);
        }
string myType= ((TextBox)DV_LogAdd.FindControl("txtType")).Text.ToString();
int updatedType;
switch(myType) 
{ 
   case "TypeA"
      updatedType = 1;
      break;
   case "TypeB":
      updatedType = 2;
      break;
   case "TypeC"
      updatedType = 3;
      break;
   default:
      updatedType= 0;
}

你试过吗:

switch(myType)
{
    case "TypeA":
        updatedType = 1;
    break;
    case "TypeB":
        updatedType = 2;
    break;
    case "TypeC":
        updatedType = 3;
    break;
    default:
    break;
}

switch语句在这里有完整的解释 http://msdn.microsoft.com/library/06tc147t(v=vs.80(.aspx这里 http://msdn.microsoft.com/en-US/library/k0t5wee3(v=vs.80(.aspx

使用 switch 您的代码将如下所示:

string myType= ((TextBox)DV_LogAdd.FindControl("txtType")).Text.ToString();
int updateType = 0;
switch (myType)
{
    case "TypeA": 
        updateType = 1;
        break;
    case "TypeB":
        updateType = 2;
        break;
    case "TypeC":
        updateType = 3;
        break;
    default:
        // Do some stuff
        break;
}

希望这对您有所帮助

        string myType= ((TextBox)DV_LogAdd.FindControl("txtType")).Text.ToString();
        int updatedType;
        switch (myType)
        {
            case "TypeA": updatedType = 1;
                break;
            case "TypeB": updatedType = 2;
                break;
            case "TypeC": updatedType = 3;
                break;
            default: updatedType = 0; //Optionnal if myType not in (TypeA, TypeB, TypeC); otherwise, you muste initialize updatedType
                break;
        }

你的 switch 语句看起来不像 C#,而只是伪代码,但 C# 等效项是:

switch(myType){
 case "TypeA":
  updateType=1;
  break;
 case "TypeB":
  updateType=2;
  break;
 case "TypeC":
  updateType=3;
  break;
 default:
  break;
 }

这对我有用:

string myType  = "typeB";
int updatedType  = 0;
switch(myType) {
    case "typeA":
        updatedType = 1;
        break;
    case "typeB":
        updatedType = 2;
        break;
    case "typeC":
        updatedType = 3;
        break;
}
Console.WriteLine("number: " + updatedType .ToString());
如果我

没猜错,我认为你想要的是......

string str = "";
int  updatedType;
foreach(Control c in this.controls)
{
   if(c.GetType() == typeof(TextBox) && c.Name == "txtType")
   {
      str = c.Text;
   }
}
switch(str)
{
   case "TypeA":
        updatedType = 1;
        break;
   case "TypeB":
        updatedType = 2;
        break;
   case "TypeC":
        updatedType = 3;
        break;
   default:
        break;
}
string[] data = {"", "TypeA", "TypeB", "TypeC"};
string myType = ((TextBox)DV_LogAdd.FindControl("txtType")).Text;
int updatedType = Array.IndexOf(data, myType);

注意:如果在数组中找不到该项目,它将返回 -1