如何使用||运算符的字符串值?

时间:2014-12-11 07:00:08

标签: c#

我有一个变量mode,它接受​​值2,3和4.现在我的mode="2"。有时我的模式值变为3和4.我想在mode = 2和3时执行相同的操作。现在mode =" 2"但如果有条件,断点不会进入内部。我的代码是worong吗?我的班级

public string resigadd(string mode) //set resignation
    {
        string data = "";

            if (if (mode== "2" || mode== "3"))
            {
                string data1;
            }
            else
            {
              //do something
            }
       rturn data;
      }

按钮单击

  protected void Submit_Click(object sender, EventArgs e)
    {
       string str = emp.resigadd(ddmode.SelectedItem.Value)   

     }

emp是My Employee类的对象

3 个答案:

答案 0 :(得分:0)

一个合理的问题可能是mode包含空格。使用Trim()尝试以下方法:

string[] Modes = new string[]{"2", "3", "4"};

string trimmedMode = mode.Trim();
if(Modes.Contains(trimmedMode))
{
    switch(trimmedMode)
    {
        case "2":
        case "3":
           //Handle case 2 and 3
           break;

        case "4":
           //Handle case 4
           break;
    }
}

答案 1 :(得分:0)

我发现代码没有任何问题。如果mode的值为“2”或“3”,则应执行if条件内的代码。这可能不起作用的唯一原因是mode是一个字符串变量,它可能在开头或结尾附加了一些空格。

试试这段代码:

if (mode.Trim() =="2"|| mode.Trim()=="3")
{
   string data1;

 }
else
{

} 

并尝试在if情况下抛出异常,这样你就会知道if条件是否已执行。它可能是VS或编译器的原因,为什么断点永远不会被击中。

答案 2 :(得分:-1)

请确保重建代码,并且您使用的mode变量不包含尾随和前导空格。使用trim方法修剪前导和尾随空格。

 String mode="2";

 if (mode.Trim()=="2" || mode.Trim()=="3")
       {
           //do something
           string data1;
       }
       else
       {
          //do something here.

       }