Используйте тело выражения для свойств (IDE0025)
Свойство | Ценность |
---|---|
идентификатор правила | IDE0025 |
заголовок | Используйте тело выражения для свойств |
категории | Стиль |
подкатегории | Языковые правила (элементы с выражением) |
применимые языки | C# |
вариантов | csharp_style_expression_bodied_properties |
Обзор
Это правило стиля касается использования тел выражений, и блоков для свойств.
Параметры
Задайте значение связанной опции для этого правила, чтобы указать, предпочтительны ли тела выражений или блоки тел для свойств, и если предпочтительны тела выражений, предпочтительны ли они только для однострочных выражений.
Дополнительные сведения о настройке параметров см. в формате параметров .
стиль_выражения_в_свойствах_в_C♯
Свойство | Ценность | Описание |
---|---|---|
название параметра | Стиль свойств C# на основе выражений | |
значения опций | true |
Предпочитайте использовать тела выражений для свойств |
when_on_single_line |
Предпочитать тела выражений для свойств, когда они будут одной строкой | |
false |
Предпочтительнее использовать тела-блоки для свойств | |
значение параметра по умолчанию | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
Это правило против IDE0027
Это правило, а также IDE0025
, IDE0027 (использование тела выражения для методов доступа) и очень похожи.
IDE0025
относится к свойству в целом, в то время как IDE0027
конкретно касается аксессорных частей свойства.
Для свойства только для чтения, которое просто возвращает значение, не выполняя никаких вычислений, если для IDE0025
задано значение csharp_style_expression_bodied_properties = false
, но IDE0027
задано значение csharp_style_expression_bodied_accessors = true
, в конечном итоге получается свойство, как показано ниже:
public int TemperatureF
{
get => _temp;
}
Но если задать IDE0025
значение csharp_style_expression_bodied_properties = true
, свойство упрощается еще больше (даже если задать IDE0027
значение csharp_style_expression_bodied_accessors = false
):
public int TemperatureF => _temp;
Для свойства чтения и записи разница становится немного более очевидной, так как свойство не может быть записано в виде выражения (так как оно состоит из нескольких строк). Таким образом, даже если IDE0025
установлен на csharp_style_expression_bodied_properties = true
, у вас все равно будут фигурные скобки, то есть тело блока.
В следующих примерах показано, как выглядит свойство с различными сочетаниями двух параметров.
// 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;
}
}
Подавление предупреждения
Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации .
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
Чтобы отключить все правила стиля кода, задайте уровень серьезности для категории Style
, чтобы none
в файле конфигурации .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.
См. также
- элементов с выражения
- Правила языка стиля кода
- Справочник по правилам стиля кода