gpt4 book ai didi

c# - CA1307 : Specify StringComparison not thrown for string. 等于(字符串)

转载 作者:行者123 更新时间:2023-12-05 06:42:56 25 4
gpt4 key购买 nike

我想知道如果使用 String.Equals(string),为什么静态代码分析(VS 2015)不会导致错误。所以

"file".Equals("FILE")

不会导致代码分析错误,而

String.Compare("file", "FILE", true)

确实会导致 CA 1307 错误。

此规则的文档在 MSDN 上说明

Many string operations, most important the Compare and Equals methods, provide an overload that accepts a StringComparison enumeration value as a parameter.

Whenever an overload exists that takes a StringComparison parameter, it should be used instead of an overload that does not take this parameter. By explicitly setting this parameter, your code is often made clearer and easier to maintain.

由此我预计第一个示例会导致 CA 1307 错误。

因此,在某些情况下不抛出错误可能会非常危险,并导致“错误”的应用程序。

我是不是漏掉了什么?

如果这是设计使然,有什么方法可以实现预期的行为?

最佳答案

您传递的比较方法是一个 bool 值,而比较函数需要一个 StringComparison 枚举值。

String.Compare("file", "FILE", StringComparison.InvariantCultureIgnoreCase);

这应该返回一个真实的响应,因为您忽略了大小写。

关于c# - CA1307 : Specify StringComparison not thrown for string. 等于(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35509327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com