Ostrzeżenie CA2015: Nie należy definiować finalizatorów dla typów pochodzących z memoryManager<T>
Reguła analizatora kodu platformy .NET CA2015 jest domyślnie włączona, począwszy od platformy .NET 5. Tworzy ostrzeżenie kompilacji dla dowolnego typu pochodzącego z MemoryManager<T> tego elementu definiującego finalizator.
Opis zmiany
Począwszy od platformy .NET 5, zestaw .NET SDK zawiera analizatory kodu źródłowego platformy .NET. Kilka z tych reguł jest domyślnie włączonych, w tym CA2015. Jeśli projekt zawiera kod, który narusza tę regułę i jest skonfigurowany do traktowania ostrzeżeń jako błędów, ta zmiana może spowodować przerwanie kompilacji.
Typy flag reguł CA2015, które pochodzą z MemoryManager<T> tej definicji finalizatora. Dodanie finalizatora do typu, który pochodzi z MemoryManager<T> , jest prawdopodobnie wskazaniem usterki. Sugeruje to, że zasób macierzysty, który mógł zostać uzyskany w obiekcie Span<T> , jest czyszczony, potencjalnie, gdy jest nadal używany przez Span<T>element .
Wprowadzona wersja
5,0
Zalecana akcja
Usuń definicję finalizatora. Aby uzyskać więcej informacji, zobacz CA2015.
Aby całkowicie wyłączyć analizę kodu, ustaw wartość
EnableNETAnalyzers
nafalse
w pliku projektu. Aby uzyskać więcej informacji, zobacz EnableNETAnalyzers.
Dotyczy interfejsów API
Nie można wykryć za pośrednictwem analizy interfejsu API.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla