1

テキスト ボックス コントロール「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 ステートメントを使用しようとしましたが、台無しになりました。

4

9 に答える 9

5

これを試して :

        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);
        }
于 2013-06-06T15:43:17.833 に答える
2

やってみました:

switch(myType)
{
    case "TypeA":
        updatedType = 1;
    break;
    case "TypeB":
        updatedType = 2;
    break;
    case "TypeC":
        updatedType = 3;
    break;
    default:
    break;
}
于 2013-06-06T15:44:02.007 に答える
2
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;
}
于 2013-06-06T15:44:11.373 に答える
1

私があなたを正しく理解していれば、あなたが望むものは....

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;
}
于 2013-06-06T16:01:57.420 に答える
1

この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;
}
于 2013-06-06T15:45:50.180 に答える
1

これがあなたを助けることを願っています

        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;
        }
于 2013-06-06T15:46:42.880 に答える
0
string[] data = {"", "TypeA", "TypeB", "TypeC"};

string myType = ((TextBox)DV_LogAdd.FindControl("txtType")).Text;
int updatedType = Array.IndexOf(data, myType);

注: 配列内にアイテムが見つからない場合は、-1 が返されます。

于 2013-06-06T15:52:05.420 に答える