Kifejezéstörzs használata tulajdonságokhoz (IDE0025)
Tulajdonság | Érték |
---|---|
Szabályazonosító | IDE0025 |
Cím | Kifejezéstörzs használata tulajdonságokhoz |
Kategória | Stílus |
Alkategória | Nyelvi szabályok (kifejezés által testesített tagok) |
Alkalmazandó nyelvek | C# |
Beállítások | csharp_style_expression_bodied_properties |
Áttekintés
Ez a stílusszabály a kifejezéstörzsek és a blokktestek tulajdonságokhoz való használatát érinti.
Beállítások
A szabályhoz társított beállítás értékének beállításával megadhatja, hogy előnyben részesítik-e a tulajdonságok kifejezéstörzseit vagy blokktesteit, és hogy előnyben részesítik-e a kifejezéstörzseket, hogy csak az egysoros kifejezésekre legyenek-e előnyben részesítve.
A beállítások konfigurálásáról további információt az Option formátum című témakörben talál.
csharp_style_expression_bodied_properties
Tulajdonság | Érték | Description |
---|---|---|
Beállítás neve | csharp_style_expression_bodied_properties | |
Beállításértékek | true |
Kifejezéstörzsek előnyben részesítve a tulajdonságokat |
when_on_single_line |
A tulajdonságok kifejezéstörzseinek előnyben részesítenek, ha egyetlen sorból állnak | |
false |
Blokktestek előnyben részesítve a tulajdonságokat | |
Alapértelmezett beállításérték | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Ez a szabály és IDE0027
Ez a szabály és IDE0025
a IDE0027 (Kifejezéstörzs használata a tartozékokhoz) nagyon hasonlóak. IDE0025
az ingatlan egészére vonatkozik, míg IDE0027
kifejezetten az ingatlan kiegészítő részeire vonatkozik.
Olyan írásvédett tulajdonság esetén, amely egyszerűen ad vissza egy értéket számítás nélkül, ha IDE0025
az érték a következőre van állítva csharp_style_expression_bodied_accessors = true
csharp_style_expression_bodied_properties = false
IDE0027
, akkor a következőhöz hasonló tulajdonsággal fog végződni:
public int TemperatureF
{
get => _temp;
}
De ha be van állítvaIDE0025
, a tulajdonság még tovább lesz egyszerűsítve (még akkor is, ha a következőre csharp_style_expression_bodied_accessors = false
van állítvaIDE0027
):csharp_style_expression_bodied_properties = true
public int TemperatureF => _temp;
Az olvasási-írási tulajdonság esetében a különbség egy kicsit nyilvánvalóbbá válik, mivel a tulajdonság nem írható kifejezés-testes módon (mivel több sorból áll). Tehát még akkor is, ha IDE0025
be van állítva csharp_style_expression_bodied_properties = true
, akkor is kapcsos kapcsos zárójelekkel, vagyis blokktesttel végződik.
Az alábbi példák bemutatják, hogyan néz ki egy tulajdonság a két lehetőség különböző kombinációival.
// 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;
}
}
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
Az összes kódstílus-szabály letiltásához állítsa be a kategória Style
súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.