Sposób użycia ostrzeżenia
Wykorzystanie ostrzeżeń wsparcia prawidłowego użycia.NET Framework.
W tej sekcji
Reguła |
Opis |
---|---|
Podpis metody zawiera parametr, który nie jest używany w treści 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. |
|
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). |
|
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. |
|
Dzięki temu oryginalne błąd trudne do wykrycia i debugowania. |
|
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. |
|
Literał ciągu w treści metody zawiera jeden lub więcej wyrazów, które nie są rozpoznawane przez bibliotekę sprawdzania pisowni Microsoft. |
|
Platforma wywołać metoda jest zdefiniowana i w istnieje metoda z równoważne funkcje.NET Framework class library. |
|
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. |
|
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. |
|
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. |
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. |
|
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. |
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. |
|
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. |
|
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. |
Finalizatorów należy użyć modyfikatora dostępu rodziny. |
|
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. |
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. |
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. |
Aby naprawić naruszenie tej zasady, implementować konstruktora serializacji.Do klasy zapieczętowanej Ustawianie Konstruktora prywatnych; w przeciwnym razie sprawiają, że chronione. |
|
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. |
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. |
|
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. |
|
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. |
|
Pola wystąpienia typu, który nie jest możliwy do serializacji jest zadeklarowany w polu Typ, który jest możliwy do serializacji. |
|
Ustalenie naruszenie tej zasady, należy wywołać konstruktora metody lub serializacji GetObjectData typu podstawowego z odpowiedniej metody typu pochodnego lub konstruktora. |
|
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. |
|
Metoda, która obsługuje zdarzenie serializacji nie ma poprawny podpis, zwracają typ lub widoczności. |
|
Typ ma pole, które jest oznaczony atrybutem System.Runtime.Serialization.OptionalFieldAttribute i typu nie zapewnia obsługi metody zdarzeń deserializacji. |
|
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. |
|
Format argumentu przekazany do System.String.Format nie zawiera element format, który odpowiada każdego argumentu obiektu lub na odwrót. |
|
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. |