Udostępnij za pośrednictwem


Sposób użycia ostrzeżenia

Wykorzystanie ostrzeżeń wsparcia prawidłowego użycia.NET Framework.

W tej sekcji

Reguła

Opis

CA1801: Przejrzyj nieużywanych parametrów

Podpis metody zawiera parametr, który nie jest używany w treści metody.

CA1806: Nie należy ignorować wyniki metody

Zostanie utworzony nowy obiekt, ale nigdy nie używane; lub wywoływana jest metoda, która tworzy i zwraca nowy ciąg znaków, i nigdy nie jest używany nowy ciąg znaków; lub metody COM lub P/Invoke zwraca kod błędu lub wartość HRESULT nigdy nie jest używany.

CA1816: Wywołanie GC.SuppressFinalize poprawnie

Metoda, która jest implementacją zbycia nie wywołuje GC.SuppressFinalize; lub metody, która nie jest implementacja zbycia wywołuje GC.SuppressFinalize; lub wywołania metody GC.SuppressFinalize i przebiegów coś innego niż ten (Me w języku Visual Basic).

CA2200: Ponownego zgłoszenia do zachowania szczegółów stosu

Wyjątkiem jest re-thrown i wyjątek jest wyraźnie określona w instrukcji throw.Jeśli wyjątek jest re-thrown przez określenie wyjątek w instrukcji throw, wykaz wywołania metody między pierwotnym metodę, która zgłosiła wyjątek i bieżącej metody zostaną utracone.

CA2201: Nie należy podnosić typów wyjątków zarezerwowane

Dzięki temu oryginalne błąd trudne do wykrycia i debugowania.

CA2202: Nie usuwaj obiekty wiele razy

Implementacja metody zawiera ścieżki kodu, powodujące wiele wywołań do System.IDisposable.Dispose lub równoważne zbycia (takie jak metoda się na niektórych typów) dla tego samego obiektu.

CA2204: Literały powinny być pisane poprawnie

Literał ciągu w treści metody zawiera jeden lub więcej wyrazów, które nie są rozpoznawane przez bibliotekę sprawdzania pisowni Microsoft.

CA2205: Użyj zarządzane odpowiedniki interfejsu Win32 API

Platforma wywołać metoda jest zdefiniowana i w istnieje metoda z równoważne funkcje.NET Framework class library.

CA2207: Zainicjuj inline statyczne pola Typ wartości

Typ wartości deklaruje jawne konstruktorze statycznym.Aby naprawić naruszenie tej zasady, zainicjować wszystkich danych statycznych, gdy jest on zadeklarowany jako i usunąć w konstruktorze statycznym.

CA2208: Poprawnie utworzyć wystąpienia argumentu wyjątków

Wywołanie do domyślnego (bezparametrowego) konstruktora typu wyjątku, lub pochodzi od ArgumentException lub ciąg niepoprawny argument jest przekazywany do sparametryzowana Konstruktor typ wyjątku, lub pochodzi od ArgumentException.

CA2211:-Stała pól nie powinny być widoczne

Statyczne pola, które są stałe ani nie są tylko do odczytu nie wielowątkowość.Dostęp do takiego pola musi być starannie kontrolowany i wymaga zaawansowanej techniki programowania dla synchronizacji dostępu do obiektu klasy.

CA2212: Nie należy oznaczać obsługiwanych składników z WebMethod

Metody w typie, która dziedziczy z System.EnterpriseServices.ServicedComponent jest oznaczone System.Web.Services.WebMethodAttribute.Ponieważ elementu WebMethodAttribute i metoda element ServicedComponent zachowanie powodujące konflikt i wymagania dotyczące przepływu kontekstu i transakcji, zachowanie metody będzie niepoprawny w niektórych scenariuszach.

CA2213: Winny być usuwane jednorazowe pól

Typ, który implementuje System.IDisposable deklaruje pól, które są typy implementujące IDisposable.Metoda zbycia tego pola nie jest wywoływana przez metodę zbycia typ deklarujący.

CA2214: Nie wymagają wykonać metody konstruktory

Konstruktora wywołuje metodę wirtualnych, jest możliwe, że nie wykonała konstruktora dla instancji, która wywołuje metodę.

CA2215: Metody zbycia powinna wywołać zbycia klasy podstawowej

Jeśli typ dziedziczy typu jednorazowego użytku, to musi wywołać metodę zbycia typu bazowego z własną metodę zbycia.

CA2216: Typy jednorazowych należy zadeklarować finalizatorów

Typ, który implementuje System.IDisposable i pola, które sugerują, wykorzystania zasobów niezarządzanego, nie implementuje finalizatorów opisane metody Object.Finalize.

CA2217: Nie należy oznaczać wyliczenia z FlagsAttribute

Wyliczenie widocznych zewnętrznie jest oznaczone FlagsAttribute i posiada jeden lub więcej wartości, które nie są uprawnienia dwóch lub kombinacji zdefiniowane wartości na wyliczenie.

CA2218: Zastępowanie GetHashCode na zastępowanie równa się

GetHashCode zwraca wartość, na podstawie bieżącej instancji, który jest odpowiedni dla algorytmy mieszania i struktur danych, takich jak tabeli mieszania.Dwa obiekty, które są tego samego typu i są równe musi zwrócić ten sam kod skrótu.

CA2219: Nie należy podnosić wyjątki w klauzulach wyjątek

Gdy tworzony jest wyjątek w ostatecznie lub klauzuli usterek, nowy wyjątek ukrywa active wyjątek.Gdy tworzony jest wyjątek w klauzuli filtru, czas jednostkowy po cichu przechwytuje wyjątek.Dzięki temu oryginalne błąd trudne do wykrycia i debugowania.

CA2220: Finalizatorów powinna wywołać finalizatorów klasy podstawowej

Finalizacja muszą być propagowane poprzez hierarchii dziedziczenia.Gwarantuje to, typy musi wywołać ich metody Finalize klasy podstawowej w ich własnej metody Finalize.

CA2221: Powinny być chronione finalizatorów

Finalizatorów należy użyć modyfikatora dostępu rodziny.

CA2222: Nie zmniejszając dziedziczonego członka widoczności

Nie należy zmieniać modyfikator dostępu dla członków dziedziczonych.Zmiana dziedziczonego członka do prywatnego nie zapobiega wywoływania dostęp do implementacji klasy podstawowej metody.

CA2223: Członkowie powinna różnić się o więcej niż zwracany typ

Chociaż aparatu plików wykonywalnych języka wspólnego pozwala na korzystanie z typami zwracanych do rozróżniania między identycznymi członków, ta funkcja nie jest w Common Language Specification, ani jest typową cechą.NET języków programowania.

CA2224: Zastępowanie jest równe na przeciążanie operatora równości

Typ publiczny implementuje operator równości, ale nie zastępuje metody Object.Equals.

CA2225: Operator overloads nazwaną zastępcy

Wykryto przeciążenie operatora i nie można odnaleźć oczekiwanego nazwanych alternatywnej metody.Nazwanego elementu członkowskiego alternatywny udostępnia taką samą funkcjonalność jak operator i jest świadczone dla deweloperów, którzy program w językach, które nie obsługują przeciążone operatory.

CA2226: Podmioty gospodarcze powinny mieć overloads symetryczne

Typ implementuje równości lub operator nierówności i nie implementuje przeciwnych operatora.

CA2227: Kolekcja właściwości powinny być tylko do odczytu

Właściwości zapisywalne kolekcja umożliwia użytkownikowi zastąpić kolekcji innej kolekcji.Właściwość tylko do odczytu zatrzymuje kolekcji z zastępowanego, ale nadal umożliwia poszczególnych członków, należy ustawić.

CA2228: Nie należy dostarczać formaty niepublikowane zasobów

Pliki zasobów, które zostały zbudowane przy użyciu wersji wstępnej.NET Framework nie może być użyteczne dla obsługiwanych wersji programu.NET Framework.

CA2229: Konstruktory serializacji wdrożenie

Aby naprawić naruszenie tej zasady, implementować konstruktora serializacji.Do klasy zapieczętowanej Ustawianie Konstruktora prywatnych; w przeciwnym razie sprawiają, że chronione.

CA2230: Użyj params dla zmiennej argumentów

Typ publicznych lub chronione zawiera metodę publiczną lub chronionych używa konwencji wywoływania typu VarArgs zamiast słowa kluczowego params.

CA2231: Operator przeciążenie jest równe na przesłanianie ValueType.Equals

Typ wartości zastępuje metodę Object.Equals, ale nie implementuje operator równości.

CA2232: Punkty wejścia Windows Forms Mark z STAThread

STAThreadAttribute oznacza, że model stosowania wątków COM. jednowątkowym apartamencie.Ten atrybut musi znajdować się w punkcie wejścia każdej aplikacji korzystającej z Windows Forms; Jeśli zostanie pominięty, składniki systemu Windows może nie działać poprawnie.

CA2233: Operacje nie powinny przepełnienia

Operacje arytmetyczne nie przeprowadza się bez sprawdzania pierwszy operandy, aby upewnić się, że wynik operacji nie jest spoza zakresu możliwych wartości dla zaangażowanych typów danych.

CA2234: Pass System.Uri obiektów zamiast z ciągów znaków

Wykonano wywołanie do metody, która ma parametr ciąg, którego nazwa zawiera "uri", "URI", "urn", "URN", "adres url" lub "Adres URL".Typ deklarujący metodzie zawiera odpowiednie przeciążenie metoda, która ma parametr System.Uri.

CA2235: Oznaczyć wszystkie pola nie można serializować

Pola wystąpienia typu, który nie jest możliwy do serializacji jest zadeklarowany w polu Typ, który jest możliwy do serializacji.

CA2236: Wywołanie metody klasy bazowej typy ISerializable

Ustalenie naruszenie tej zasady, należy wywołać konstruktora metody lub serializacji GetObjectData typu podstawowego z odpowiedniej metody typu pochodnego lub konstruktora.

CA2237: Typy ISerializable znak z SerializableAttribute

Rozpoznane przez aparatu plików wykonywalnych języka wspólnego jako możliwy do serializacji, typy musi oznaczone atrybutem SerializableAttribute, nawet jeśli typ korzysta z rutynowych serializacji niestandardowej poprzez implementację interfejsu ISerializable.

CA2238: Prawidłowo zaimplementować Serializacja metod

Metoda, która obsługuje zdarzenie serializacji nie ma poprawny podpis, zwracają typ lub widoczności.

CA2239: Zapewnić deserialization metody pola opcjonalne

Typ ma pole, które jest oznaczony atrybutem System.Runtime.Serialization.OptionalFieldAttribute i typu nie zapewnia obsługi metody zdarzeń deserializacji.

CA2240: Wdrożenie ISerializable poprawnie

Aby naprawić naruszenie tej zasady, wprowadzić metodę GetObjectData widoczne i wykonać i upewnij się, że wszystkie pola wystąpienia są uwzględnione w procesie serializacji lub wyraźnie oznaczone atrybutem NonSerializedAttribute.

CA2241: Zapewniają prawidłowe argumenty metod formatowania

Format argumentu przekazany do System.String.Format nie zawiera element format, który odpowiada każdego argumentu obiektu lub na odwrót.

CA2242: Test NaN poprawnie

To wyrażenie badania wartości przed Single.Nan lub Double.Nan.Przetestuj wartość za pomocą Single.IsNan(Single) lub Double.IsNan(Double).

CA2243: Atrybut literały ciągów powinna analizować poprawnie

Parametr literału string atrybutu nie analizuje poprawnie dla adresu URL, identyfikator GUID lub wersji.