Utwórz pola struktury do zapisu (IDE0064)
Właściwość | Wartość |
---|---|
Identyfikator zasady | IDE0064 |
Tytuł | Tworzenie pól struktury do zapisu |
Kategoria | CodeQuality |
Subcategory (Podkategoria) | Reguły języka (preferencje modyfikatora) |
Odpowiednie języki | C# |
Omówienie
Ta reguła wykrywa struktury, które zawierają co najmniej jedno readonly
pole, a także zawierają przypisanie poza this
konstruktorem. Reguła zaleca konwertowanie readonly
pól na tylko do odczytu, czyli zapisywalne. Oznaczanie takich pól struktury, które readonly
mogą prowadzić do nieoczekiwanego zachowania, ponieważ wartość przypisana do pola może ulec zmianie po this
przypisaniu poza konstruktorem.
Opcje
Ta reguła nie ma skojarzonych opcji stylu kodu.
Przykład
// 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);
}
}
Pomijanie ostrzeżenia
Jeśli chcesz pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable IDE0064
// The code that's violating the rule is on this line.
#pragma warning restore IDE0064
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.IDE0064.severity = none
Aby wyłączyć całą kategorię reguł, ustaw ważność kategorii na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia analizy kodu.