2014-10-03 142 views
2

我对这个珍闻在documentation这种方法很好奇:ComboBox.FindStringExact(string s) - 如果字符串s为空,它有什么用途返回0?

Return Value Type: System.Int32 The zero-based index of the first item found; returns -1 if no match is found, or 0 if the s parameter specifies Empty.

我根本无法捉摸的东西用它的人有这个方法返回0,如果所提供的字符串是空的。请记住,返回应该是组合框中匹配字符串位置的从零开始的索引。因此,当您返回0时,使用此方法,可能是您搜索的字符串位于0,或者您搜索的字符串是空的。对于两种截然不同的情况也是如此。

如果你正在寻找一个空字符串,恰好处于位置,比如5,会发生什么?这个方法会返回0,否?

我只是想了解这个小警告的意图是什么,以及如何正确使用它。

+4

在真实的,它不返回0,为空字符串,如果有一个带有空字符串的项目,它将返回它的索引,否则它将返回'-1',所以我认为文档中存在缺陷。 – Habib 2014-10-03 16:57:31

+2

我不知道文档是否在ComboBox.FindString和ComboBox.FindStringExact之间切换。 FindString的文档不包含这个短语,但在这种情况下它会有意义。 – 2014-10-03 17:06:40

+1

@Dave:就是这样! FindString为空搜索字符串返回0,不管它是否为空项目。 FindStringExact返回索引或-1。他们是否为这种发现交出奖品? – TaW 2014-10-03 17:10:22

回答

2

文档错误:短语“或0,如果s参数指定空”应该是ComboBox.GetString文档的一部分,而不是ComboBox.GetStringExact

相关问题