CA2230: Použijte parametry pro proměnné argumenty
Název_typu |
UseParamsForVariableArguments |
CheckId |
CA2230 |
Kategorie |
Microsoft.Usage |
Změnit rozdělení |
Rozdělení |
Příčina
Typ veřejné nebo chráněné obsahuje veřejné nebo chráněné metody, která používá VarArgs konvence volání.
Popis pravidla
VarArgs Konvence volání používá určité definice metody, proměnný počet parametrů, které.Metoda použití VarArgs konvence volání není společný jazyk specifikace (CLS) kompatibilní a pravděpodobně nebudou přístupné přes programovacích jazyků.
V jazyce C# VarArgs konvence volání se používá, když končí seznam parametrů metody __arglist klíčové slovo.Visual Basic nepodporuje VarArgs volání úmluvy a Visual C++ umožňuje jeho použití pouze nespravovaný kód, který používá elipsy, ... notaci.
Jak opravit porušení
Oprava porušení tohoto pravidla v jazyce C#, použijte params (Referenční dokumentace jazyka C#) klíčové slovo namísto __arglist.
Při potlačení upozornění
Nepotlačovat upozornění od tohoto pravidla.
Příklad
Následující příklad ukazuje dvě metody, která porušují pravidlo a která splňuje pravidla.
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]);
}
}
}
}