String.IndexOf(Char) vs String.IndexOf(Char, StringCompariso
本文关键字:String Char IndexOf StringCompariso vs | 更新日期: 2023-09-27 18:33:50
Resharper建议我使用:
int notesFirstSpaceIndex = notes.IndexOf(" ", StringComparison.Ordinal);
而不是:
int notesFirstSpaceIndex = notes.IndexOf(" ");
根据 https://msdn.microsoft.com/en-us/library/kwb0bwyd(v=vs.110).aspx String.IndexOf(char) 无论如何都使用 Ordinal:"此方法执行序号(不区分区域性)搜索"。
如果他们都使用 StringComparison.Ordinal,我会从使用推荐的方法中获得什么好处?
当您调用时:
int notesFirstSpaceIndex = notes.IndexOf(" ");
您正在传递一个字符串" "
.
这意味着您正在使用该方法的以下重载:
public int IndexOf(string value)
引用上面的参考资料:
此方法使用当前区域性执行单词(区分大小写和区分区域性)搜索。
这意味着它相当于:
int notesFirstSpaceIndex = notes.IndexOf(" ", StringComparison.CurrentCulture);
关于差异(调用不带参数的重载与将默认值作为参数传递的相应重载之间),差异几乎为零。如果查看该方法的第一个重载的源代码,它实际上调用了将默认值作为参数值传递的方法的其他重载。