Substituir argumentos repetitivos por matriz params
TypeName |
ReplaceRepetitiveArgumentsWithParamsArray |
CheckId |
CA1025 |
Category (Categoria) |
Microsoft.Design |
Quebrando alterar |
Não separável |
Causa
Um método público ou protegido em um tipo público tem mais de três parâmetros e seus três últimos parâmetros são do mesmo tipo.
Descrição da regra
Use uma matriz de parâmetro em vez de argumentos repetidos quando o número exato de argumentos é desconhecido e argumentos variáveis são do mesmo tipo, ou podem ser passados sistema autônomo o mesmo tipo.Por exemplo, a WriteLine método fornece uma sobrecarga de uso geral que utiliza uma matriz de parâmetro para aceitar qualquer número de Object argumentos.
Como corrigir violações
Para corrigir uma violação dessa regra, substitua os argumentos repetidos uma matriz de parâmetro.
Quando suprimir avisos
É sempre seguro eliminar um aviso da regra; no entanto, esse design pode causar problemas de usabilidade.
Exemplo
O exemplo a seguir mostra um tipo que violam essa regra.
using System;
namespace DesignLibrary
{
public class BadRepeatArguments
{
// Violates rule: ReplaceRepetitiveArgumentsWithParamsArray.
public void VariableArguments(object obj1, object obj2, object obj3, object obj4) {}
public void VariableArguments(object obj1, object obj2, object obj3, object obj4, object obj5) {}
}
public class GoodRepeatArguments
{
public void VariableArguments(object obj1) {}
public void VariableArguments(object obj1, object obj2) {}
public void VariableArguments(object obj1, object obj2, object obj3) {}
public void VariableArguments(params Object[] arg) {}
}
}