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?
,我会从使用推荐的方法中获得什么好处答案 0 :(得分:3)
致电时:
int notesFirstSpaceIndex = notes.IndexOf(" ");
您正在传递字符串" "
。
这意味着您使用的是以下overload of the method:
public int IndexOf(string value)
引自上述参考文献:
此方法使用当前文化执行单词(区分大小写和文化敏感)搜索。
这意味着它相当于:
int notesFirstSpaceIndex = notes.IndexOf(" ", StringComparison.CurrentCulture);
关于差异(在调用不带参数的重载和相应的重载超过默认值作为参数之间),差异几乎为零。如果查看方法的第一个重载的源代码,它实际上调用方法的另一个重载,将默认值作为参数值传递。