Partager via


Le contrôle de valeur null peut être simplifiée (IDE0029, IDE0030 et IDE0270)

Cet article décrit trois règles connexes, IDE0029, IDE0030et IDE0270.

Propriété Valeur
Identificateur de la règle IDE0029
Titre Le contrôle de valeur null peut être simplifiée (contrôle conditionnel ternaire)
Catégorie Style
sous-catégorie Règles de langage (préférences au niveau de l’expression)
langues applicables C# et Visual Basic
Options dotnet_style_coalesce_expression
Propriété Valeur
Identificateur de la règle IDE0030
Titre Le contrôle de valeur null peut être simplifiée (contrôle conditionnel ternaire nullable)
Catégorie Style
sous-catégorie Règles de langage (préférences au niveau de l’expression)
langues applicables C# et Visual Basic
Options dotnet_style_coalesce_expression
Propriété Valeur
Identificateur de la règle IDE0270
Titre Le contrôle de valeur null peut être simplifiée (si contrôle de valeur null).
Catégorie Style
sous-catégorie Règles de langage (préférences au niveau de l’expression)
langues applicables C# et Visual Basic
Options dotnet_style_coalesce_expression

Aperçu

Les règles IDE0029 et IDE0030 concernent l’utilisation d’expressions de coalescence nulle, par exemple, x ?? y, par rapport aux expressions conditionnelles ternaires avec des contrôles null, par exemple x != null ? x : y. Les règles diffèrent en ce qui concerne la nullabilité des expressions :

  • IDE0029: utilisé lorsque des expressions non nullables sont impliquées. Par exemple, cette règle peut recommander x ?? y au lieu de x != null ? x : y lorsque x et y sont des types référence non nullables.
  • IDE0030: utilisé lorsque des expressions nullables sont impliquées. Par exemple, cette règle peut recommander x ?? y au lieu de x != null ? x : y lorsque x et y sont des types de valeur pouvant être nulles ou des types de référence pouvant être nulles.

La règle IDE0270 signale l’utilisation d’un contrôle de valeur null (== null ou is null) au lieu de l’opérateur de coalescence nulle (??).

Options

Les options spécifient le comportement que vous souhaitez que la règle applique. Pour plus d'informations sur la configuration des options, consultez le format d'option .

dotnet_style_coalesce_expression

Propriété Valeur Description
nom de l’option dotnet_style_coalesce_expression
Valeurs d’option true Préférer les expressions de coalescence nulle.
false Il désactive la règle.
valeur d’option par défaut true

Exemples

IDE0029 et 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

Supprimer un avertissement

Si vous souhaitez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactivez la règle.

#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

Pour désactiver la règle d’un fichier, d’un dossier ou d’un projet, définissez sa gravité sur none dans le fichier de configuration .

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

Pour désactiver toutes les règles de style de code, définissez la gravité de la catégorie Style sur none dans le fichier de configuration .

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

Pour plus d’informations, consultez Comment supprimer les avertissements d’analyse du code.

Voir aussi

  • règles de langage de style de code
  • Références sur les règles de style de code