Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| Własność | Wartość |
|---|---|
| identyfikator reguły | IDE0064 |
| Tytuł | Tworzenie pól struktury zapisywalnych |
| Kategoria | Jakość kodu |
| podkategorii | Reguły języka (preferencje modyfikatora) |
| Stosowane języki | C# |
Przegląd
Ta reguła wykrywa struktury, które zawierają co najmniej jedno readonly pola, a także zawierają przypisanie do this poza konstruktorem. Zasada zaleca konwertowanie pól readonly, aby nie były tylko do odczytu, czyli były zapisywalne. Oznaczanie takich pól struktury, jak readonly może prowadzić do nieoczekiwanego zachowania, ponieważ wartość przypisana do pola może ulec zmianie po przypisaniu this 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ć tę 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.