【问题标题】:Index out of bounds in an if statement [closed]if语句中的索引超出范围[关闭]
【发布时间】:2018-09-16 15:26:59
【问题描述】:

我想知道为什么即使在 if 语句中我也会让索引越界。如果代码为假,代码不应该简单地执行并在 if 块之后执行吗?我有以下代码,它给了我IndexOut of range Exception

if (rhs[0] == '+')
    {
                rhs = rhs.Replace("+", "");
    }


//Some code here

【问题讨论】:

  • 你的假设是错误的。索引到字符串的行为有据可查。去读吧。
  • 请包含rhs的声明和初始化。这是一个非常重要的信息,(也适用于这篇文章的未来访问者)重现您的问题。

标签: c# if-statement exception


【解决方案1】:

大概 rhs 是空的,所以 rhs[0] 不存在。因此会引发索引越界异常。

试试

if(!String.IsNullOrEmpty(rhs) && rhs[0] == '+')
... 

【讨论】:

  • 谢谢,试试看
  • 非常感谢。成功了
  • 很好的问题分析。 OP 发布了唯一的问题:“如果代码为假,代码不应该简单地执行并在 if 块之后执行吗?”即使您发布了一个可行的解决方案,您也没有回答这个问题。如果你这样做,它会改善你的答案
猜你喜欢
  • 1970-01-01
  • 2015-08-23
  • 2023-02-18
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
相关资源
最近更新 更多