簡體   English   中英

String.IndexOf(Char)vs String.IndexOf(Char,StringComparison)

[英]String.IndexOf(Char) vs String.IndexOf(Char, StringComparison)

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);

關於差異(在調用不帶參數的重載和相應的重載超過默認值作為參數之間),差異幾乎為零。 如果查看方法的第一個重載的源代碼,它實際上調用方法的另一個重載,將默認值作為參數值傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM