c# - textchanged 事件中的复杂 if 语句
问题描述
我想实现一个复杂的 if 语句。if 语句位于文本框的 textchanged 事件中。如果 if 语句为真,则应加载 pdf 文件。问题不在于如何加载 PDF 文件,这已经很好了,问题在于如何设置 if 语句。在那里,应查询以下条件:
位置0必须是“S”,位置1必须是“E”,位置2必须是“H”,位置3无所谓,位置4-7代表数字,数字必须从0开始-3000(不允许超过 3000),位置 8 必须再次是“H”或“R”
我尝试了 IndexOf() 方法,它适用于前 3 个字符,但与第 8 个符号相关,它不再起作用。我认为这与“H”已经存在于位置 2 的事实有关。
要检查我尝试过的数字: Convert.ToInt32(textBox1.Text.Substring(4, 4)) <= 3000
但这也不起作用。
解决方案
private static bool ShowPdf(string str)
{
if (str[0] != 'S')
return false;
else if (str[1] != 'E')
return false;
else if (str[2] != 'H')
return false;
else if (str[8] != 'H' && str[8] != 'R')
return false;
else if (int.TryParse(str.Substring(4,4), out int number)
return (number >= 0 && number <= 3000);
return true;
}
推荐阅读
- xml - 使用 xslt 2.0 基于 xml 注释节点拆分节点
- python - 蟒蛇银行ATM
- python - 如何拆分压缩数据
- jquery - 我们什么时候在 ajax 的 Javascript 对象中使用
- postgresql - 无法将容器化应用程序连接到容器化 postgres,接收拨号 tcp 连接被拒绝错误
- python - 将每个列表编号四舍五入到另一个列表中最接近的编号
- c# - 类中未初始化的数组是否使用内存?
- testing - 如何确保所有更改都保存到 Visual Studio Team Services 中的测试计划?
- sql - SQL从没有LIKE的字符串右侧获取数字
- c++ - 从 C++ 应用程序检测 OSX 中的关机/重启