Используйте тело выражения для свойств (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
значение, но 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
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.