CA2230: usar parâmetros para argumentos variáveis
TypeName |
UseParamsForVariableArguments |
CheckId |
CA2230 |
Categoria |
Microsoft.Usage |
Alteração Significativa |
Quebra |
Causa
Um público ou um tipo protegido contêm um público ou protegido um método que usa VarArgs que chama a convenção.
Descrição da Regra
VarArgs que chama a convenção é usado com certas definições do método que têm um número variável de parâmetros.Um método que usa VarArgs que chama a convenção não é compatível CLS (CLS) e pode não estar acessível através das linguagens de programação.
No C#, VarArgs que chama a convenção é usado quando a lista de parâmetros de um método termina com a palavra-chave de __arglist .Visual Basic não da suporte VarArgs que chama a convenção, e o Visual C++ permite o uso apenas em código não gerenciado usando a notação de ... de reticências.
Como Corrigir Violações
Para corrigir uma violação desta regra no C#, use a palavra-chave de params (Referência de C#) em vez de __arglist.
Quando Suprimir Alertas
Não elimine um alerta desta regra.
Exemplo
O exemplo a seguir mostra dois métodos, um que viola a regra e outro que obedece à regra.
using System;
[assembly: CLSCompliant(true)]
namespace UsageLibrary
{
public class UseParams
{
// This method violates the rule.
[CLSCompliant(false)]
public void VariableArguments(__arglist)
{
ArgIterator argumentIterator = new ArgIterator(__arglist);
for(int i = 0; i < argumentIterator.GetRemainingCount(); i++)
{
Console.WriteLine(
__refvalue(argumentIterator.GetNextArg(), string));
}
}
// This method satisfies the rule.
public void VariableArguments(params string[] wordList)
{
for(int i = 0; i < wordList.Length; i++)
{
Console.WriteLine(wordList[i]);
}
}
}
}
Consulte também
Referência
Conceitos
Independência da linguagem e componentes independentes da linguagem