Создание записываемых полей структуры (IDE0064)
Свойство | Ценность |
---|---|
идентификатор правила | IDE0064 |
Заголовок | Создание записываемых полей структуры |
категория | CodeQuality |
подкатегория | Языковые правила (настройки модификатора) |
применимые языки | C# |
Обзор
Это правило обнаруживает структуры, содержащие один или несколько полей readonly
, а также содержат назначение для this
за пределами конструктора. Правило рекомендует преобразовать поля readonly
из только для чтения в доступные для записи. Маркировка таких полей структуры, как readonly
может привести к неожиданному поведению, так как значение, назначенное полю, может измениться при назначении this
за пределами конструктора.
Опции
Это правило не имеет связанных параметров стиля кода.
Пример
// Code with violations
struct MyStruct
{
public readonly int Value;
public MyStruct(int value)
{
Value = value;
}
public void Test()
{
this = new MyStruct(5);
}
}
// Fixed code
struct MyStruct
{
public int Value;
public MyStruct(int value)
{
Value = value;
}
public void Test()
{
this = new MyStruct(5);
}
}
Подавление предупреждения
Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации .
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Чтобы отключить эту всю категорию правил, задайте уровень серьезности для категории none
в файле конфигурации .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.
См. также
- Правила языка стиля кода
- Справочник по правилам стиля кода