Usar parâmetros para variável argumentos
TypeName |
UseParamsForVariableArguments |
CheckId |
CA2230 |
Category (Categoria) |
Microsoft.uso |
Quebrando alterar |
Quebrando |
Causa
Um tipo público ou protegido contém um método público ou protegido que usa o VarArgs convenção de chamada.
Descrição da regra
The VarArgs convenção de chamada é usada com determinadas definições de método que levam a um número variável de parâmetros. Um método usando o VarArgs convenção de chamada não é especificação CLS (Common linguagem) em conformidade e talvez não estejam acessível através de linguagens de programação.
Em translation from VPE for Csharp, o VarArgs convenção de chamada é usada quando um método parâmetro lista termina com o __arglist palavra-chave. Visual Basic não oferece suporte a VarArgs chamada convenção e Visual C++ permite que seu uso apenas em código não gerenciado que usa a elipse ... notação.
Como corrigir violações
Para corrigir uma violação desta regra no translation from VPE for Csharp, use o params (Referência C#) palavra-chave em vez de __arglist.
Quando suprimir avisos
Não suprimir um aviso da regra.
Exemplo
O exemplo a seguir mostra dois métodos, uma que viola a regra e outra que satisfaça a 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
Conceitos
CLS (Common Language Specification)