Поделиться через


Используйте тело выражения для свойств (IDE0025)

Свойство Значение
Идентификатор правила IDE0025
Заголовок Используйте тело выражения для свойств
Категория Стиль
Подкатегории Правила языка (элементы, воплощающие выражение)
Применимые языки C#
Options (Параметры) csharp_style_expression_bodied_properties

Обзор

Это правило стиля относится к использованию тела выражения и тела блока для свойств.

Параметры

Задайте значение связанного параметра для этого правила, чтобы указать, предпочтительны ли тела выражений или блоковые тела для свойств, и если предпочтительны тела выражений, предпочтителен ли они только для однострочных выражений.

Дополнительные сведения о настройке параметров см . в разделе "Формат параметров".

csharp_style_expression_bodied_properties

Свойство значение Описание
Имя параметра csharp_style_expression_bodied_properties
Значения параметра 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 значение, но IDE0027csharp_style_expression_bodied_accessors = trueзадано значение, в конечном итоге используется свойство, которое выглядит следующим образом:

public int TemperatureF
{
    get => _temp;
}

Но если задано IDE0025csharp_style_expression_bodied_properties = trueзначение , свойство упрощено еще дальше (даже если задано значение IDE0027csharp_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

Чтобы отключить все правила стиля кода, задайте уровень серьезности для категории Stylenone в файле конфигурации.

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

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

См. также