CA1026: Domyślne parametry nie powinny być używane
Pozycja | Wartość |
---|---|
Ruleid | CA1026 |
Kategoria | Microsoft.Design |
Zmiana powodująca niezgodność | Kluczowa |
Przyczyna
Typ widoczny zewnętrznie zawiera zewnętrznie widoczną metodę, która używa parametru domyślnego.
Uwaga
Ta reguła została przestarzała. Aby uzyskać więcej informacji, zobacz Przestarzałe reguły.
Opis reguły
Metody korzystające z parametrów domyślnych są dozwolone w ramach specyfikacji języka wspólnego (CLS); jednak clS umożliwia kompilatorom ignorowanie wartości przypisanych do tych parametrów. Kod napisany dla kompilatorów, które ignorują domyślne wartości parametrów, muszą jawnie podać argumenty dla każdego parametru domyślnego. Aby zachować zachowanie w różnych językach programowania, metody używające parametrów domyślnych powinny zostać zastąpione przeciążeniami metod, które zapewniają parametry domyślne.
Kompilator ignoruje wartości domyślnych parametrów rozszerzenia zarządzanego dla języka C++ podczas uzyskiwania dostępu do kodu zarządzanego. Kompilator języka Visual Basic obsługuje metody, które mają domyślne parametry używające słowa kluczowego Optional .
Jak naprawić naruszenia
Aby naprawić naruszenie tej reguły, zastąp metodę, która używa parametrów domyślnych przeciążeniami metody dostarczającymi parametry domyślne.
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły.
Przykład
W poniższym przykładzie przedstawiono metodę, która używa parametrów domyślnych, oraz metody przeciążone, które zapewniają równoważną funkcjonalność.
Imports System
<Assembly: CLSCompliant(True)>
Namespace DesignLibrary
Public Class DefaultVersusOverloaded
Sub DefaultParameters(Optional parameter1 As Integer = 1, _
Optional parameter2 As Integer = 5)
' ...
Console.WriteLine("{0} : {1}", parameter1, parameter2)
End Sub
Sub OverloadedMethod()
OverloadedMethod(1, 5)
End Sub
Sub OverloadedMethod(parameter1 As Integer)
OverloadedMethod(parameter1, 5)
End Sub
Sub OverloadedMethod(parameter1 As Integer, parameter2 As Integer)
' ...
Console.WriteLine("{0} : {1}", parameter1, parameter2)
End Sub
End Class
End Namespace
Powiązane reguły
CA1025: Zastąp powtarzające się argumenty tablicą parametrów
Zobacz też
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