CA1030: Używaj zdarzeń wszędzie, gdzie jest to odpowiednie
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA1030 |
Tytuł | Używaj zdarzeń, o ile to możliwe |
Kategoria | Projekt |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Nie. |
Przyczyna
Nazwa metody zaczyna się od jednej z następujących:
- Dodaj
- Usuń
- Ogień
- Podnieść
Domyślnie ta reguła analizuje tylko metody widoczne zewnętrznie, ale jest to możliwe do skonfigurowania.
Opis reguły
Ta reguła wykrywa metody o nazwach, które normalnie mogą być używane dla zdarzeń. Zdarzenia są zgodne ze wzorcem projektu Obserwator lub Publish-Subscribe; są one używane, gdy zmiana stanu w jednym obiekcie musi być komunikowana z innymi obiektami. Jeśli metoda zostanie wywołana w odpowiedzi na jasno zdefiniowaną zmianę stanu, metoda powinna zostać wywołana przez procedurę obsługi zdarzeń. Obiekty, które wywołują tę metodę, powinny wywoływać zdarzenia, a nie bezpośrednio metodę.
Niektóre typowe przykłady zdarzeń można znaleźć w aplikacjach interfejsu użytkownika, w których akcja użytkownika, taka jak kliknięcie przycisku powoduje wykonanie segmentu kodu. Model zdarzeń platformy .NET nie jest ograniczony do interfejsów użytkownika. Powinien być używany w dowolnym miejscu, w którym należy przekazać zmiany stanu do co najmniej jednego obiektu.
Jak naprawić naruszenia
Jeśli metoda jest wywoływana, gdy zmieni się stan obiektu, rozważ zmianę projektu w celu użycia modelu zdarzeń platformy .NET.
Kiedy pomijać ostrzeżenia
Pomiń ostrzeżenie z tej reguły, jeśli metoda nie działa z modelem zdarzeń platformy .NET.
Pomijanie ostrzeżenia
Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.
#pragma warning disable CA1030
// The code that's violating the rule is on this line.
#pragma warning restore CA1030
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA1030.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.
Konfigurowanie kodu do analizowania
Użyj następującej opcji, aby skonfigurować, które części bazy kodu mają być uruchamiane w tej regule.
Tę opcję można skonfigurować tylko dla tej reguły, dla wszystkich reguł, do których ma ona zastosowanie, lub dla wszystkich reguł w tej kategorii (Projekt), których dotyczy. Aby uzyskać więcej informacji, zobacz Opcje konfiguracji reguły jakości kodu.
Uwzględnij określone powierzchnie interfejsu API
Możesz skonfigurować, na których częściach bazy kodu ma być uruchamiana ta reguła, na podstawie ich ułatwień dostępu. Aby na przykład określić, że reguła powinna być uruchamiana tylko na powierzchni niepublicznego interfejsu API, dodaj następującą parę klucz-wartość do pliku editorconfig w projekcie:
dotnet_code_quality.CAXXXX.api_surface = private, internal