Compartilhar via


Tornar os campos de struct graváveis (IDE0064)

Propriedade Valor
ID da regra IDE0064
Título Tornar os campos de estrutura editáveis
Categoria CodeQuality
Subcategoria Regras de idioma (preferências do modificador)
idiomas aplicáveis C#

Visão geral

Essa regra detecta structs que contêm um ou mais campos readonly e também contêm uma atribuição para this fora do construtor. A regra recomenda converter os campos readonlypara que não sejam somente leitura, ou seja, graváveis. Marcar campos de struct como readonly pode levar a um comportamento inesperado, pois o valor atribuído ao campo pode ser alterado quando this é atribuído fora do construtor.

Opções

Essa regra não tem opções de estilo de código associadas.

Exemplo

// 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);
    }
}

Suprimir um aviso

Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar a regra e depois reativá-la.

#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064

Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua severidade como none no arquivo de configuração .

[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none

Para desabilitar toda essa categoria de regras, defina a severidade da categoria para none no arquivo de configuração .

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

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Consulte também