Sdílet prostřednictvím


Kontrola null může být zjednodušená (IDE0029, IDE0030 a IDE0270).

Tento článek popisuje tři související pravidla, IDE0029, IDE0030a IDE0270.

Vlastnost Hodnota
ID pravidla IDE0029
název Kontrola null může být zjednodušená (ternární podmíněná kontrola)
kategorie Styl
podkategorie Jazyková pravidla (předvolby na úrovni výrazu)
příslušné jazyky C# a Visual Basic
Možnosti dotnet_style_coalesce_expression
Vlastnost Hodnota
ID pravidla IDE0030
název Kontrolu null lze zjednodušit (podmíněná kontrola pomocí nulovatelné trojité podmínky)
Kategorie Styl
podkategorie Jazyková pravidla (předvolby na úrovni výrazu)
příslušné jazyky C# a Visual Basic
Možnosti dotnet_style_coalesce_expression
Vlastnost Hodnota
ID pravidla IDE0270
název Kontrolu null je možné zjednodušit (pokud je kontrola null).
Kategorie Styl
podkategorie Jazyková pravidla (předvolby na úrovni výrazu)
příslušné jazyky C# a Visual Basic
Možnosti dotnet_style_coalesce_expression

Přehled

Pravidla IDE0029 a IDE0030 se týkají použití výrazů , například x ?? y, proti ternárním podmíněným výrazům s kontrolami null, například x != null ? x : y. Pravidla se liší podle nulovatelnosti výrazů:

  • IDE0029: Používá se, když jsou zahrnuté výrazy, které nemají hodnotu null. Toto pravidlo může například doporučit x ?? y místo x != null ? x : y, když x a y jsou neudržitelné referenční typy.
  • IDE0030: Používá se, když jsou zahrnuty nulovatelné výrazy. Toto pravidlo může například doporučit x ?? y místo x != null ? x : y, pokud x a y jsou nulovatelné hodnotové typy nebo nulovatelné referenční typy .

Pravidlo IDE0270 označuje použití kontroly null (== null nebo is null) místo operátoru null-coalescing (??).

Volby

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_coalesce_expression

Vlastnost Hodnota Popis
název možnosti dotnet_style_coalesce_expression
hodnoty možností true Upřednostněte výrazy nulového shodování.
false Deaktivuje pravidlo.
výchozí hodnota možnosti true

Příklady

IDE0029 a IDE0030

// Code with violation.
var v = x != null ? x : y; // or
var v = x == null ? y : x;

// Fixed code.
var v = x ?? y;
' Code with violation.
Dim v = If(x Is Nothing, y, x) ' or
Dim v = If(x IsNot Nothing, x, y)

' Fixed code.
Dim v = If(x, y)

IDE0270

// Code with violation.
class C
{
    void M()
    {
        var item = FindItem() as C;
        if (item == null)
            throw new System.InvalidOperationException();
    }

    object? FindItem() => null;
}

// Fixed code (dotnet_style_coalesce_expression = true).
class C
{
    void M()
    {
        var item = FindItem() as C ?? throw new System.InvalidOperationException();
    }

    object? FindItem() => null;
}
' Code with violation.
Public Class C
    Sub M()
        Dim item = TryCast(FindItem(), C)
        If item Is Nothing Then
            item = New C()
        End If
    End Sub

    Function FindItem() As Object
        Return Nothing
    End Function
End Class

' Fixed code (dotnet_style_coalesce_expression = true).
Public Class C
    Sub M()
        Dim item = If(TryCast(FindItem(), C), New C())
    End Sub

    Function FindItem() As Object
        Return Nothing
    End Function
End Class

Potlačení 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 IDE0029 // Or IDE0030 or IDE0270
// The code that's violating the rule is on this line.
#pragma warning restore IDE0029 // Or IDE0030 or IDE0270

Chcete-li pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost na none v konfiguračním souboru .

[*.{cs,vb}]
dotnet_diagnostic.IDE0029.severity = none
dotnet_diagnostic.IDE0030.severity = none
dotnet_diagnostic.IDE0270.severity = none

Chcete-li zakázat všechna pravidla stylu kódu, nastavte závažnost pro kategorii Style na none v konfiguračním souboru .

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

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také

  • Pravidla stylu kódování
  • Referenční pravidla stylu kódu