Utiliser un corps d'expression pour les propriétés (IDE0025)
Propriété | Valeur |
---|---|
Identificateur de la règle | IDE0025 |
Titre | Utiliser le corps de l'expression pour les propriétés |
Catégorie | Style |
sous-catégorie | Règles de langage (membres expression-bodied) |
langues applicables | C# |
Options | csharp_style_expression_bodied_properties |
Aperçu
Cette règle de style concerne l'utilisation de corps d'expression et de corps de bloc pour les propriétés.
Options
Définissez la valeur de l’option associée pour cette règle pour spécifier si les corps d’expression ou les corps de blocs pour les propriétés sont préférés et si les corps d’expression sont préférés, s’ils sont préférés uniquement pour les expressions à ligne unique.
Pour plus d’informations sur la configuration des options, consultez le format des options .
csharp_style_expression_bodied_properties
Propriété | Valeur | Description |
---|---|---|
nom de l’option | csharp_style_expression_bodied_properties | |
Valeurs d’option | true |
Préférer les corps d’expression pour les propriétés |
when_on_single_line |
Préférer les corps d’expression pour les propriétés sur une seule ligne | |
false |
Préférer les corps de bloc pour les propriétés | |
valeur d’option par défaut | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Cette règle par rapport à IDE0027
Cette règle, IDE0025
, , IDE0027 (Utiliser le corps d’expression pour les accesseurs), et sont très similaires. IDE0025
concerne la propriété dans son ensemble, tandis que IDE0027
concerne spécifiquement les parties qui accèdent à la propriété.
Pour une propriété en lecture seule qui retourne simplement une valeur sans effectuer de calcul, si IDE0025
est défini sur csharp_style_expression_bodied_properties = false
, mais que IDE0027
est défini sur csharp_style_expression_bodied_accessors = true
, vous finissent par une propriété qui ressemble à ceci :
public int TemperatureF
{
get => _temp;
}
Mais si vous définissez IDE0025
sur csharp_style_expression_bodied_properties = true
, la propriété est simplifiée encore plus (même si vous définissez IDE0027
sur csharp_style_expression_bodied_accessors = false
) :
public int TemperatureF => _temp;
Pour une propriété en lecture-écriture, la différence devient un peu plus apparente, car la propriété ne peut pas être écrite sous forme d'expression puisqu'elle se compose de plusieurs lignes. Ainsi, même si IDE0025
est défini sur csharp_style_expression_bodied_properties = true
, vous vous retrouvez toujours avec des accolades, c’est-à-dire un corps de bloc.
Les exemples suivants montrent comment une propriété ressemble à différentes combinaisons des deux options.
// csharp_style_expression_bodied_properties = false
// csharp_style_expression_bodied_accessors = true
public int TemperatureB
{
get => _temp;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = true (or false)
public int TemperatureC => _temp;
// csharp_style_expression_bodied_properties = true (or false)
// csharp_style_expression_bodied_accessors = true
public int TemperatureD
{
get => _temp;
set => _temp = value;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = false
public int TemperatureE
{
get
{
return _temp;
}
set
{
_temp = value;
}
}
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 IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
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.IDE0025.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
- Membres expression-bodied
- règles de langage de style de code
- Informations de référence sur les règles de style de code