Parâmetros padrão não devem ser usados
TypeName |
DefaultParametersShouldNotBeUsed |
CheckId |
CA1026 |
Category (Categoria) |
Microsoft.Design |
Quebrando alterar |
Quebrando |
Causa
Um tipo visível externamente contém um método visível externamente que usa um parâmetro padrão.
Descrição da regra
Os métodos que usam parâmetros padrão são permitidos na CLS (Common linguagem Specification); no entanto, o CLS permite compiladores ignorar os valores atribuídos a esses parâmetros.O código escrito para compiladores ignoram valores de parâmetro padrão explicitamente deve fornecer argumentos para cada parâmetro padrão.Para manter o comportamento que você deseja em linguagens de programação, métodos que usam parâmetros padrão devem ser substituídos pelo método sobrecargas que fornecem os parâmetros padrão.
O compilador ignora os valores dos parâmetros padrão para translation from VPE for Csharp e extensão gerenciados para C++ ao acessar o código gerenciado.O compilador do Visual Basic oferece suporte a métodos com parâmetros padrão usando o Opcional (Visual Basic) palavra-chave.
Como corrigir violações
Para corrigir uma violação dessa regra, substitua o método que usa parâmetros padrão com sobrecargas do método que fornece os parâmetros padrão.
Quando suprimir avisos
Não suprimir um aviso da regra.
Exemplo
O exemplo a seguir mostra um método que usa parâmetros padrão e os métodos sobrecarregados que fornecem uma funcionalidade equivalente.
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
Regras relacionadas
Substituir argumentos repetitivos por matriz params