CA1847:使用 String.Contains(char) 而非 String.Contains(string) 搭配單一字元
屬性 | 值 |
---|---|
規則識別碼 | CA1847 |
職稱 | 使用 String.Contains(char) 而非 String.Contains(string) 搭配單一字元 |
類別 | 效能 |
修正程式是中斷或非中斷 | 不中斷 |
預設在 .NET 8 中啟用 | 建議 |
原因
String.Contains(string)
可用時 String.Contains(char)
會使用 。
檔案描述
搜尋單一字元時, String.Contains(char)
提供比 更好的 String.Contains(string)
效能。
如何修正違規
一般而言,規則只是使用char常值而非字串常值來修正。
public bool ContainsLetterI()
{
var testString = "I am a test string.";
return testString.Contains("I");
}
Public Function ContainsLetterI() As Boolean
Dim testString As String = "I am a test string."
Return testString.Contains("I")
End Function
此程式代碼可以變更為改用char常值。
public bool ContainsLetterI()
{
var testString = "I am a test string.";
return testString.Contains('I');
}
Public Function ContainsLetterI() As Boolean
Dim testString As String = "I am a test string."
Return testString.Contains("I"c)
End Function
隱藏警告的時機
如果您不擔心有關搜尋調用的效能影響,請隱藏此規則的違規。
隱藏警告
如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable CA1847
// The code that's violating the rule is on this line.
#pragma warning restore CA1847
若要停用檔案、資料夾或項目的規則,請在組態檔中將其嚴重性設定為 。none
[*.{cs,vb}]
dotnet_diagnostic.CA1847.severity = none
如需詳細資訊,請參閱 如何隱藏程式代碼分析警告。