我有一个变量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类的对象
答案 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.
}