Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ostrzeżenia użycia obsługuje właściwy sposób użycia programu.NET Framework.
W tej sekcji
Reguła |
Opis |
---|---|
Podpis metody zawiera parametr, który nie jest używany w treści metody. |
|
Nowy obiekt jest tworzony, ale nigdy nie używany; lub metoda, która tworzy i zwraca nowy ciąg jest wywoływana, ale nowy ciąg nigdy nie jest używany; lub metody COM lub P/Invoke zwracają HRESULT lub kod błędu, który nigdy nie jest używany. |
|
Metoda, która jest implementacją Dispose, nie wywołuje GC.SuppressFinalize; lub metoda, która nie jest implementacja Dispose wywołuje GC.SuppressFinalize; lub metoda wywołuje GC.SuppressFinalize i przekazuje na coś innego niż "this" (Me w języku Visual Basic). |
|
CA2200: Należy zgłosić ponownie, aby zachować szczegóły stosu |
Wyjątek jest ponownie Wyrzucony wyjątek jest jawnie określona w instrukcji throw.Jeśli ponownie wyjątek określając wyjątek w instrukcji throw, lista wywołania metody między oryginalnej metody, który wygenerował wyjątek i bieżącej metody jest tracone. |
Dzięki temu oryginalny błąd jest trudny do wykrycia i debugowania. |
|
Implementacja metody zawiera ścieżki kodu, które powodują wielokrotne wywołania do System.IDisposable.Dispose lub równoważnika (na przykład użyciu metody Close() na niektórych typach) dla tego samego obiektu. |
|
Ciąg literału 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ądzanych odpowiedników interfejsu API Win32 |
Wywołanie platformy metoda jest zdefiniowana i metody z równoważne funkcje istnieje w Biblioteka klas.NET Framework. |
Typ wartości deklaruje jawny, statyczny konstruktor.Aby naprawić naruszenie tej zasady, zainicjuj wszystkie dane statyczne, gdy jest on zadeklarowany i usuń konstruktor statyczny. |
|
Wywołanie jest zrobione do domyślnego (bezparametrowego) konstruktora typu wyjątku, który jest lub pochodzi od ArgumentException lub niepoprawny ciąg argumentu jest przekazywany do sparametryzowana konstruktora typu wyjątku lub pochodzi od ArgumentException. |
|
Pola statyczne, które nie są ani stałe, ani tylko do odczytu, nie obsługują wielowątkowości.Dostęp do takiego pola musi być starannie kontrolowany i wymaga zaawansowanych technik programowania dla synchronizacji dostępu do obiektu klasy. |
|
CA2212: Nie należy oznaczać obsługiwanych składników znacznikiem WebMethod |
Metoda w typie, która dziedziczy z System.EnterpriseServices.ServicedComponent jest oznaczony atrybutem System.Web.Services.WebMethodAttribute.Ponieważ WebMethodAttribute i metoda ServicedComponent mają sprzeczne zachowanie i wymagania dotyczące przepływu kontekstu i transakcji, zachowanie metod będzie niepoprawne w niektórych scenariuszach. |
Typ, który implementuje System.IDisposable deklaruje pola, które są typu, który także implementują IDisposable.Metoda Dispose pola nie jest wywoływana przez metodę Dispose typu deklarującego. |
|
CA2214: Nie należy wywoływać nadpisywalnych metod w konstruktorach |
Kiedy konstruktor wywołuje metodę wirtualną, jest możliwe, że konstruktor wystąpienia, które wywołuje metodę, nie został wykonany. |
CA2215: Metody Dispose powinny wywoływać operację usuwania klasy podstawowej |
Jeśli typ dziedziczy z typu usuwalnego, musi on wywołać metodę Dispose typu podstawowego z własną metodę Dispose. |
Typ, który implementuje System.IDisposable i zawiera pola, które sugerują, wykorzystania zasobów niezarządzanego, nie implementuje finalizatorów opisane przez Object.Finalize. |
|
Wyliczenie widocznych zewnętrznie jest oznaczony atrybutem FlagsAttribute i ma jedną lub więcej wartości, które nie są uprawnienia dwóch lub kombinacji zdefiniowane wartości na wyliczenie. |
|
GetHashCode zwraca wartość opartą na bieżącym wystąpieniu, które jest odpowiednie dla algorytmów wyznaczających wartości skrótu i struktur danych, takich jak tabela skrótów.Dwa obiekty, które są tego samego typu i są równe muszą zwrócić tę samą wartość skrótu. |
|
Kiedy wyjątek jest zgłaszany w klauzuli "finally" lub "fault", nowy wyjątek ukrywa aktywny wyjątek.Gdy jest wyjątek jest zgłaszany w klauzuli "filter", środowisko uruchomieniowe dyskretnie przechwytuje wyjątek.Dzięki temu oryginalny błąd jest trudny do wykrycia i debugowania. |
|
CA2220: Finalizatory powinny wywoływać finalizatory klasy podstawowej |
Finalizacja musi być powielana w hierarchii dziedziczenia.Aby to zagwarantować, typy muszą wywołać metody Finalize swoich klas podstawowych w ich własnej metodzie Finalize. |
Finalizatory należy użyć modyfikatora dostępu "family". |
|
CA2222: Nie zmniejszaj widoczności dziedziczonego elementu członkowskiego |
Nie należy zmieniać modyfikatora dostępu dla dziedziczonych elementów członkowskich.Zmiana dziedziczonego elementu członkowskiego na prywatny nie uniemożliwia wywołującym uzyskania dostępu do implementacji metody klasy podstawowej. |
CA2223: Elementy członkowskie powinny różnić się bardziej, niż typem zwracanym |
Chociaż CLR pozwala na używanie typów zwracanych do rozróżnienia między inaczej identycznymi członkami, funkcja ta nie jest w specyfikacji języka wspólnego (CLS), ani nie jest wspólną cechą języków programowania .NET. |
Typ publiczny implementuje operator równości, ale nie zastępuje metody Object.Equals. |
|
Wykryto przeciążony operator i nie znaleziono alternatywnej, oczekiwanie nazwanej metody.Alternatywne nazwanego elementu członkowskiego udostępnia taką samą funkcjonalność jak operator, a jest świadczone dla deweloperów, którzy program w językach, których nie obsługuje przeciążonych operatorów. |
|
Typ implementuje równości lub operator nierówności i nie implementuje przeciwnych operatora. |
|
Właściwości zapisywalnej kolekcji pozwala użytkownikowi zastąpić kolekcję inną kolekcją.Właściwość tylko do odczytu uniemożliwia zastępowanie kolekcji, ale nadal umożliwia ustawienie poszczególnych członków. |
|
Pliki zasobów, które zostały zbudowane przy użyciu wersji wstępnych systemu.NET Framework może nie być możliwe do wykorzystania przez obsługiwanych wersji systemu.NET Framework. |
|
Aby naprawić naruszenie tej zasady, należy zaimplementować konstruktor serializacji.Dla zamkniętej klasy, należy ustawić konstruktor prywatnym; w przeciwnym razie powinien być chroniony. |
|
Typ publiczny lub chroniony zawiera metodę publiczną lub chronioną, która używa wywoływania VarArgs, zamiast słowa kluczowego params. |
|
CA2231: Przeciąż operator equals przy zastępowaniu ValueType.Equals |
Typ wartości zastępuje metodę Object.Equals, ale nie implementuje operatora równości. |
CA2232: Oznacz punkty wpisu formularzy systemu Windows za pomocą STAThread |
STAThreadAttribute wskazuje, że model wątkowości COM dla aplikacji jest jednowątkowym apartamentem.Atrybut ten musi być obecny w punkcie wejścia każdej aplikacji korzystającej z Windows Forms; Jeśli zostanie pominięty, składniki systemu Windows mogą nie działać poprawnie. |
Operacje arytmetyczne nie powinna odbywać się bez sprawdzania pierwszy operandów, aby upewnić się, że wynik operacji nie jest spoza zakresu możliwych wartości dla typów danych zaangażowane. |
|
Wykonano wywołanie do metody, która ma parametr typu ciąg, którego nazwa zawiera "uri", "URI", "urn", "URN", "url" lub "URL". Deklarujący typ metody zawiera odpowiadającą przeciążoną metodę, która ma parametr System.Uri. |
|
Pola wystąpienia typu, który nie może być serializowany jest zadeklarowany w typie, który jest możliwy do serializacji. |
|
CA2236: Wywołanie metod klasy podstawowej typu ISerializable |
Aby naprawić naruszenie tej zasady, należy wywołać metodę GetObjectData typu podstawowego lub konstruktor serializacji z odpowiadającej metody typu pochodnego lub konstruktora. |
CA2237: Należy oznaczyć typ ISerializable atrybutem SerializableAttribute |
Być uznawane przez aparat plików wykonywalnych języka jako możliwy do serializacji, typy musi oznaczone atrybutem SerializableAttribute, nawet jeśli typ korzysta rutynowych serializacji niestandardowej poprzez implementację interfejsu ISerializable. |
CA2238: Należy poprawnie zaimplementować metody serializacji |
Metoda, która obsługuje zdarzenie szeregowania nie ma poprawnej sygnatury zwracanego typu lub widoczności. |
Typ ma pole, które jest oznaczony atrybutem System.Runtime.Serialization.OptionalFieldAttribute i typu nie zapewnia obsługi metod deserializacji zdarzeń. |
|
Napraw naruszenie tej zasady, zrobić metoda GetObjectData widoczne i NotOverridable i upewnij się, że wszystkie pola wystąpienia są uwzględniane w procesie serializacji lub jawnie oznaczone atrybutem NonSerializedAttribute. |
|
Format argumentu przekazanego do System.String.Format nie zawiera element formatu, który odpowiada argumentowi każdego obiektu, lub odwrotnie. |
|
To wyrażenie sprawdza czy wartość to Single.Nan lub Double.Nan.Użyj Single.IsNan(Single) lub Double.IsNan(Double) do testowania wartości. |
|
CA2243: Literały ciągu atrybutu powinny być analizowane poprawnie |
Parametr literał ciągu atrybutu nie analizuje poprawnie dla adresu URL, identyfikatora GUID lub wersji. |