Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| 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.