Geçersiz biçim dizesi (IDE0043)

Property Değer
Kural Kimliği IDE0043
Title Geçersiz biçim dizesi
Category Style
alt kategorisi Dil kuralları (dize işlemleri)
Geçerli diller C# ve Visual Basic
Options Hiçbiri

Overview

Bu kural, String.Format gibi bileşik biçimlendirme yöntemlerine yapılan ve biçim dizesindeki bir yer tutucu dizinin var olmayan bir argümana başvurduğu çağrıları işaretler. Örneğin, biçim dizesi {1} içeriyor ancak yalnızca bir bağımsız değişken sağlanmışsa ({0} olarak erişilebilen), kural {1} yer tutucusunu işaretler.

Uyarı

Bu kural, biçim dizesi bağımsız değişkenlerini de doğrulayan kod kalitesi kuralı CA2241'e benzer.

Example

// Code with violations.
// '{1}' is out of range — only one argument is provided.
string s = string.Format("Hello, {0}! You have {1} messages.", "Alice");

// Fixed code.
string s = string.Format("Hello, {0}! You have {1} messages.", "Alice", 5);
' Code with violations.
' '{1}' is out of range — only one argument is provided.
Dim s As String = String.Format("Hello, {0}! You have {1} messages.", "Alice")

' Fixed code.
Dim s As String = String.Format("Hello, {0}! You have {1} messages.", "Alice", 5)

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.

#pragma warning disable IDE0043
// The code that's violating the rule is on this line.
#pragma warning restore IDE0043

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, none önem derecesini olarak ayarlayın.

[*.{cs,vb}]
dotnet_diagnostic.IDE0043.severity = none

Kod stili kuralların tümünü devre dışı bırakmak için, kategorinin Stylenone önem derecesini yapılandırma dosyasında olarak ayarlayın.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

Daha fazla bilgi için bkz. Kod analizi uyarılarını gizleme.

Ayrıca bakınız