为什么我们在 instr 函数 ssrs 中给出 >0。 InStr 函数在不给出大于 0 的值的情况下工作
why do we give >0 in instr function ssrs. The InStr function works without giving the greater than 0 value
为什么我们在instr函数ssrs中给出>0。
InStr 函数在不给出大于 0 的值的情况下工作。
因为 InStr returns 搜索字符串在被搜索字符串中首次出现的索引。索引是基于 1 的,当找不到字符串时,returned 索引是下限(字符串作为字符数组)- 1 = 1 - 1 = 0。这在 VB 中,在 C# f.e。它将是 0 - 1 = -1。
当您使用 InStr 确定是否找到字符串时,您需要布尔结果,并使用比较 > 0 来获取它,return在找到字符串时为 True,否则为 False。
但是,由于boolean和int之间存在隐式转换,可以直接使用InStr,return值0(未找到)将被转换为False,而任何非零值(已找到) ) 将转换为 True。
虽然这是正确的并且有效,但这种方式不太明显,看一下代码 =InStr(...)
你不能很快说,需要真正的索引(整数)或者这个索引存在的事实(布尔值)。最后是关于代码的可读性和可维护性,不要忘记隐式转换(尤其是在不可调试的 SSRS 代码中)可能会给你带来很多问题。
为什么我们在instr函数ssrs中给出>0。 InStr 函数在不给出大于 0 的值的情况下工作。
因为 InStr returns 搜索字符串在被搜索字符串中首次出现的索引。索引是基于 1 的,当找不到字符串时,returned 索引是下限(字符串作为字符数组)- 1 = 1 - 1 = 0。这在 VB 中,在 C# f.e。它将是 0 - 1 = -1。
当您使用 InStr 确定是否找到字符串时,您需要布尔结果,并使用比较 > 0 来获取它,return在找到字符串时为 True,否则为 False。
但是,由于boolean和int之间存在隐式转换,可以直接使用InStr,return值0(未找到)将被转换为False,而任何非零值(已找到) ) 将转换为 True。
虽然这是正确的并且有效,但这种方式不太明显,看一下代码 =InStr(...)
你不能很快说,需要真正的索引(整数)或者这个索引存在的事实(布尔值)。最后是关于代码的可读性和可维护性,不要忘记隐式转换(尤其是在不可调试的 SSRS 代码中)可能会给你带来很多问题。