CA1026: Nie należy używać domyślnych parametrów
TypeName |
DefaultParametersShouldNotBeUsed |
CheckId |
CA1026 |
Kategoria |
Microsoft.Design |
Zmiana kluczowa |
Kluczowa |
Przyczyna
Typ widoczny z zewnątrz zawiera metodę widoczną z zewnątrz, która wykorzystuje parametr domyślny.
Opis reguły
Metody, które używają parametrów domyślnych są dozwolone na mocy specyfikacji wspólnego języka (CLS); Jednakże CLS umożliwia kompilatorom ignorowanie wartości, które są przypisane do tych parametrów.Kod napisany dla kompilatorów, które ignorują wartości domyślne parametrów musi jawnie podać argumenty dla każdego parametru domyślnego.Aby zachować zachowanie w językach programowania, metody, które używają parametrów domyślnych powinien zostać zastąpione przez przeciążone metody, które zapewniają domyślne parametry.
Kompilator ignoruje wartości domyślne parametrów dla rozszerzenia zarządzanego dla C++, gdy uzyskuje dostęp do kodu zarządzanego.Kompilator Visual Basic obsługuje metody, które mają parametry domyślne, które używają słowa kluczowego Opcjonalne (Visual Basic).
Jak naprawić naruszenia
Aby naprawić naruszenie tej zasady, należy zastąpić metodę, która korzysta z parametru domyślnego metodą przeciążoną, aby przekazać domyślne parametry.
Kiedy pomijać ostrzeżenia
Nie należy pomijać ostrzeżenia dotyczącego tej reguły.
Przykład
W poniższym przykładzie metoda, która korzysta z domyślnych parametrów i metody przeciążane, zapewniają równoważne funkcje.
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: Zamień powtarzające się argumenty params tablicy