Dotnet Core - 在 'string.Replace(string, string?)' 上收到警告说使用 'string.Replace(string, string?, System.StringComparison)'
Dotnet Core - Getting a warning on 'string.Replace(string, string?)' saying use 'string.Replace(string, string?, System.StringComparison)'
我在 "Replace"
上收到以下警告
> Severity Code Description Project File Line Suppression State
> Warning CA1307 The behavior of 'string.Replace(string, string?)' could
> vary based on the current user's locale settings. Replace this call in
> 'JobsLedger.API.ControllerServices.Common.OrderAndFIlterHelpers.ODataProcessQuery.ProcessQuery(string)'
> with a call to 'string.Replace(string, string?,
> System.StringComparison)'. JobsLedger.API C:\Users\simon\OneDrive\Documents.0
> - AURELIA.0 - JobsLedgerSPA -ASPNET CORE 3.1\JobsLedger.API\ControllerServices\Common\OrderAndFIlterHelpers\ODataProcessQuery.cs 38 Active
我不知道如何重新配置以下内容以考虑 'System.StringComparison':
.Replace("and", "&")
.Replace("substringof", string.Empty)
.Replace("(", string.Empty)
.Replace(")", string.Empty)
.Replace("'", string.Empty)
.Replace(" ", string.Empty)
.Replace("eq", ",")
每一行都抛出了一个警告..
我正在使用 VS2019,这些警告来自 Roslyn 编译器。我想摆脱警告..如何重写它以考虑替换的 'System.StringComparison' 部分?
只是...告诉它你想要什么比较类型;例如,对于 ordinal-ignore-case 替换:
.Replace("and", "&", StringComparison.OrdinalIgnoreCase)
.Replace("substringof", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace("(", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace(")", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace("'", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace("eq", ",", StringComparison.OrdinalIgnoreCase);
有关每个选项功能的说明,请查看 StringComparison
。一般来说,您不应该使用 CurrentCulture
/ CurrentCultureIgnoreCase
进行硬编码的类系统替换;基于文化的替换对于面向用户的替换更为典型(想想:ctrl+f)。作为旁注,使用 string.Empty
比使用更清晰的 (IMO) ""
.
确实没有任何好处
我在 "Replace"
上收到以下警告> Severity Code Description Project File Line Suppression State
> Warning CA1307 The behavior of 'string.Replace(string, string?)' could
> vary based on the current user's locale settings. Replace this call in
> 'JobsLedger.API.ControllerServices.Common.OrderAndFIlterHelpers.ODataProcessQuery.ProcessQuery(string)'
> with a call to 'string.Replace(string, string?,
> System.StringComparison)'. JobsLedger.API C:\Users\simon\OneDrive\Documents.0
> - AURELIA.0 - JobsLedgerSPA -ASPNET CORE 3.1\JobsLedger.API\ControllerServices\Common\OrderAndFIlterHelpers\ODataProcessQuery.cs 38 Active
我不知道如何重新配置以下内容以考虑 'System.StringComparison':
.Replace("and", "&")
.Replace("substringof", string.Empty)
.Replace("(", string.Empty)
.Replace(")", string.Empty)
.Replace("'", string.Empty)
.Replace(" ", string.Empty)
.Replace("eq", ",")
每一行都抛出了一个警告..
我正在使用 VS2019,这些警告来自 Roslyn 编译器。我想摆脱警告..如何重写它以考虑替换的 'System.StringComparison' 部分?
只是...告诉它你想要什么比较类型;例如,对于 ordinal-ignore-case 替换:
.Replace("and", "&", StringComparison.OrdinalIgnoreCase)
.Replace("substringof", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace("(", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace(")", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace("'", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace(" ", string.Empty, StringComparison.OrdinalIgnoreCase)
.Replace("eq", ",", StringComparison.OrdinalIgnoreCase);
有关每个选项功能的说明,请查看 StringComparison
。一般来说,您不应该使用 CurrentCulture
/ CurrentCultureIgnoreCase
进行硬编码的类系统替换;基于文化的替换对于面向用户的替换更为典型(想想:ctrl+f)。作为旁注,使用 string.Empty
比使用更清晰的 (IMO) ""
.