为什么我们在instr函数ssrs中给出> 0。 InStr函数在不给出大于0的值的情况下工作

时间:2016-11-01 09:49:57

标签: reporting-services ssrs-2008-r2 ssrs-2012 ssrs-tablix

为什么我们在instr函数ssrs中给出> 0。 InStr函数在不给出大于0的值的情况下工作。

1 个答案:

答案 0 :(得分:0)

因为InStr返回搜索字符串中搜索字符串首次出现的索引。索引是从1开始的,当找不到字符串时,返回的索引是lowerbound(字符串作为字符数组) - 1 = 1 - 1 = 0.这是在VB中,在C#f.e中。它将是0 - 1 = -1。

当您使用InStr确定是否找到字符串时,您需要布尔结果,并且要使用比较> 0,当找到字符串时返回True,否则返回False。

但是,由于boolean和int之间存在隐式转换,因此可以直接使用InStr,返回值0(未找到)将转换为False,而任何非零值(找到)将转换为True

虽然这是正确的并且有效,但这种方式不那么明显,并且看一下你不能快速说出的代码=InStr(...),需要真正的索引(整数)或者这个索引存在的事实(布尔)。最后,它是关于代码可读性和可维护性的,不要忘记隐式转换(特别是在不可调试的SSRS代码中)可能会给您带来很多问题。