La vérification de la valeur Null peut être simplifiée (IDE0029, IDE0030 et IDE0270)
Cet article décrit trois règles associées, IDE0029
, IDE0030
et IDE0270
.
Propriété | Value |
---|---|
Identificateur de la règle | IDE0029 |
Titre | La vérification de la valeur Null peut être simplifiée (vérification conditionnelle ternaire) |
Catégorie | Style |
Sous-catégorie | Règles de langage (préférences au niveau de l’expression) |
Langages applicables | C# et Visual Basic |
Options | dotnet_style_coalesce_expression |
Propriété | Value |
---|---|
Identificateur de la règle | IDE0030 |
Titre | La vérification de la valeur Null peut être simplifiée (vérification conditionnelle ternaire pouvant accepter la valeur Null) |
Catégorie | Style |
Sous-catégorie | Règles de langage (préférences au niveau de l’expression) |
Langages applicables | C# et Visual Basic |
Options | dotnet_style_coalesce_expression |
Propriété | Value |
---|---|
Identificateur de la règle | IDE0270 |
Titre | La vérification de la valeur Null peut être simplifiée (si vérification Null) |
Catégorie | Style |
Sous-catégorie | Règles de langage (préférences au niveau de l’expression) |
Langages applicables | C# et Visual Basic |
Options | dotnet_style_coalesce_expression |
Vue d’ensemble
Les règles IDE0029 et IDE0030 concernent l’utilisation d’expressions de coalescence nulle, par exemple, x ?? y
, ou d’expressions conditionnelles ternaires avec des vérifications null
, par exemple, x != null ? x : y
. Les règles diffèrent en ce qui concerne la possibilité de nullité des expressions :
IDE0029
: utilisé quand des expressions non-nullables sont impliquées. Par exemple, cette règle peut recommanderx ?? y
au lieu dex != null ? x : y
quandx
ety
sont des types référence non-nullables.IDE0030
: utilisé quand des expressions nullables sont impliquées. Par exemple, cette règle peut recommanderx ?? y
au lieu dex != null ? x : y
quandx
ety
sont des types valeur nullables ou des types référence nullables.
La règle IDE0270 indique l’utilisation d’une vérification de la 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 Format d’option.
dotnet_style_coalesce_expression
Propriété | Valeur | Description |
---|---|---|
Nom d'option | dotnet_style_coalesce_expression | |
Valeurs d’option | true |
Préférez 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 voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver 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 sur un fichier, un dossier ou 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 de l’analyse de code.