Dodawanie jawnego rzutu w pętli foreach (IDE0220)

Właściwość Wartość
Identyfikator zasady IDE0220
Tytuł Dodawanie jawnego rzutowania
Kategoria Styl
Subcategory (Podkategoria) Reguły języka (preferencje na poziomie wyrażeń)
Odpowiednie języki C#
Opcje dotnet_style_prefer_foreach_explicit_cast_in_source

Omówienie

Ta reguła flaguje brak jawnego rzutowania w foreach pętli, gdy kompilator doda ukryty rzut. W przypadku kolekcji ogólnych lub silnie wpisanych, wymuszając jawne rzutowanie, gdy kompilator doda ukryty rzut, może odkryć użycie nieprawidłowego typu w instrukcji foreach .

Opcje

Opcje określają zachowanie, które ma być wymuszane przez regułę. Aby uzyskać informacje na temat konfigurowania opcji, zobacz Format opcji.

dotnet_style_prefer_foreach_explicit_cast_in_source

Właściwość Wartość Opis
Nazwa opcji dotnet_style_prefer_foreach_explicit_cast_in_source
Wartości opcji always Preferuj jawne rzutowanie w kodzie źródłowym.
when_strongly_typed Preferuj jawne rzutowanie dla silnie typiowanych (ogólnych) kolekcji, ale nie dla starszych kolekcji, takich jak ArrayList.
Wartość opcji domyślnej when_strongly_typed

Przykład

// Code with violations.
var list = new List<object>();
foreach (string item in list) { }

// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())

Pomijanie ostrzeżenia

Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

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

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

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

Aby wyłączyć wszystkie reguły stylu kodu, ustaw ważność kategorii Style na none w pliku konfiguracji.

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

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.

Zobacz też