if (theString.IndexOf(strSegments[i]) != -1)//若theString在条件字串段中
应该是:
if (theString.IndexOf(strSegments[i]) != -1)//若theString中包含有strSegments[i]
应该是:
if (theString.IndexOf(strSegments[i]) != -1)//若theString中包含有strSegments[i]
解决方案 »
- 关于int类型转换为string类型的问题,有赋值却提示未赋值
- c#使用helpProvider打开chm文件时无法定位?
- 什么导出来文本里包含HTML源码?
- 对象声明怎样解剖?请帮忙!急!急!急!
- 【100分求助】谁能提供一个C# DataGridView的免费打印控件啊?
- 利用反射加载程序集得到类型
- 要Treeview完成下面的功能,该怎么办?谢谢大家~~~
- C#数据库的表有无“当前记录”这样的概念?没见到有这样的对象属性?
- 请问如果用c#访问网络邻居的文件
- 怎样在部署WinForm项目时修改注册表实现程序安装后开机自动启动?
- 字符串如何才能转换成byte[]?
- 请教:怎么生成能在没有dotnet环境的机器上运行的exe 。
else
{
return "ConditionError";
continue;
}
return 就是跳出这个函数了,当然不会continue.遇到这种问题,单步执行之。
确定此实例是否与指定的 String 具有相同的值。
[C#] public bool Equals(string);
没说清楚,主要是我在遍历时else的处理不当,因为我需要返回值,现在的处理执行完一次后就跳出。
同时我加的break是不对的,应当去掉。该方法的功能是:
根据传入的参数(string theString),检索我定义的string[] strSegments,看输入参数是否包含有字符数组的任一字符,若包含有,则将之赋值给我定义的条件字符strCondition中,并返回“S_OK”,反之返回“ConditionError”.TO snewxf(心疤):
strSegments[i] 只是theString的一部分而已。
protected string strCondition;//条件字串
strCondition="Unknown";
string[] strSegments={"<Define>","<DateTime>","<AutoCode>"//若theString包含strSegments[i],则将之添加到strCondition中
public new string AddAND(string theString)
{
for (int i=0;i<strSegments.Length;i++)
{
//----------------------------------------------//
if (theString.IndexOf(strSegments[i]) != -1)//若theString在条件字串段中
{
if (strCondition=="Unknown")//若是首次添加
{
strCondition=theString;
bDefineCodintion=true;
return "S_OK";
break;
}
else//反之
{
strCondition=strCondition + "&&" + theString;
bDefineCodintion=true;
return "S_OK";
break;
}
}
//--------------------以上部分应该没错----------------------------//
else
{
i++;
//continue;
if (i==strSegments.Length-1)
return "Error";
//问题应该出在这段else部分:如何让程序能实现循环,感觉主要是语法使用不当,请大家帮忙指正。
}
}
}
你的程序只可能执行一次,因为你的每一步都return了,return不但跳出循环而且跳出此方法,我想你的程序可能要重写了。
不好意思,那两个break是应当去掉的,我忘记了, 问题主要是else那部分既要continue ,也要循环完后要return一个string。
protected string s=0;
protected string j=0;
......
addAND(***,j,s)//做方法的时候多做一个传入参数j和s
if s<strSegments.Length then
{
if j=0 then
{
addAND(***,j,s)
}
s=s+1
}public new string AddAND(string theString,,string j,string s)
{
for (int i=s;i<strSegments.Length;i++)
{
if (theString.IndexOf(strSegments[i]) != -1)//若theString在条件字串段中
{
if (strCondition=="Unknown")//若是首次添加
{
strCondition=theString;
bDefineCodintion=true;
j=1;
s=strSegments.Length;
return "S_OK";
}
else//反之
{
strCondition=strCondition + "&&" + theString;
bDefineCodintion=true;
s=strSegments.Length;
j=1;
return "S_OK";
}
}
else
{
s=i;
return "ConditionError";
}
}
}没在机器上试过不知道可不可以,大概还要那里修改一下
if j=0 then
{
s=s+1;
addAND(***,j,s);
}