CA1026: Não devem ser usados parâmetros padrão
TypeName |
DefaultParametersShouldNotBeUsed |
CheckId |
CA1026 |
Category (Categoria) |
Microsoft.Design |
Alteração Significativa |
Interrompendo |
Causa
Um tipo externamente visível contém um método externamente visível que usa um parâmetro padrão.
Descrição da Regra
Métodos que usam parâmetros padrão são permitidos sob a Especificação de Linguagem Comum (CLS); no entanto, o CLS permite que os compiladores ignorem os valores que são atribuídos a esses parâmetros.O código que é escrito para compiladores que ignorem valores de parâmetro padrão devem fornecer explicitamente argumentos para cada parâmetro padrão.Para manter o comportamento que você deseja através das linguagens de programação, os métodos que usam parâmetros padrão devem ser substituídos por sobrecargas do método que fornecem os parâmetros padrão.
O compilador ignora os valores dos parâmetros padrão para Extensão Gerenciada para C++ quando acessa código gerenciado.O compilador do Visual Basic suporta métodos que têm parâmetros padrão que usam a palavra-chave Opcional (Visual Basic) .
Como Corrigir Violações
Para corrigir uma violação desta regra, substitua o método que usa parâmetros padrão por sobrecargas do método que fornecem os parâmetros padrão.
Quando Suprimir Alertas
Não elimine um alerta desta 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
CA1025: Substituir argumentos repetitivos com matriz params