Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Vlastnictví | Hodnota |
|---|---|
| Identifikátor pravidla | IDE0221 |
| Titul | Přidej explicitní přetypování |
| Kategorie | Styl |
| Podkategorie | Jazyková pravidla (předvolby na úrovni výrazu) |
| Příslušné jazyky | jazyk C# |
| Options | dotnet_style_prefer_non_hidden_explicit_cast_in_source |
Přehled
Toto pravidlo označí explicitní přetypování ve zdrojovém kódu, kde kompilátor vloží další skryté explicitní přetypování. Viditelné i skryté přetypování mohou selhat při běhu z různých důvodů. ** Když toto pravidlo označí kód, doporučuje explicitně přidat mezilehlé přetypování ve zdrojovém kódu, aby byl jeho záměr jasný.
Pokud například napíšete (Derived)x , kde x je typ, který vyžaduje dva explicitní převody – nejprve na základní typ a potom na odvozený typ – ve zdroji je viditelné pouze jedno přetypování. Kompilátor vloží přechodné přetypování bez jakéhokoli naznačení ve zdrojovém kódu. Toto pravidlo navrhuje explicitně psát oba přetypování: (Derived)(Base)x.
Možnosti
Možnosti určují chování, které má pravidlo vynutit. Informace o konfiguraci možností naleznete v tématu Formát možnosti.
dotnet_style_prefer_non_hidden_explicit_cast_in_source
| Vlastnictví | Hodnota | Description |
|---|---|---|
| Název možnosti | dotnet_style_prefer_non_hidden_explicit_cast_in_source | |
| Hodnoty možností | true |
Raději zviditelněte všechna explicitní přetypování zprostředkujícího formátu ve zdrojovém kódu. |
false |
Nedoporučuje se, aby všechna mezilehlá explicitní přetypování byla viditelná ve zdrojovém kódu. | |
| Výchozí hodnota možnosti | true |
Příklad
class Base { }
class Derived : Base { }
class Castable
{
public static explicit operator Base(Castable c) => new Base();
}
class C
{
void M()
{
// Code with violation: the compiler inserts a hidden (Base) cast.
var v = (Derived)new Castable();
// Fixed code: both casts are explicit in source.
var v2 = (Derived)(Base)new Castable();
}
}
Potlačte upozornění
Pokud chcete potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable IDE0221
// The code that's violating the rule is on this line.
#pragma warning restore IDE0221
Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .
[*.cs]
dotnet_diagnostic.IDE0221.severity = none
Pokud chcete zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style na none v konfiguračním souboru.
[*.cs]
dotnet_analyzer_diagnostic.category-Style.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.