CA2230: используйте параметры для аргументов переменной
Товар | Значение |
---|---|
Идентификатор правила | CA2230 |
Категория | Microsoft.Usage |
Критическое изменение | Критическое |
Причина
Общедоступный или защищенный тип содержит общедоступный или защищенный метод, использующий соглашение о вызовах VarArgs
.
Примечание.
Это правило устарело. Дополнительные сведения см. в разделе "Устаревшие правила".
Описание правила
Соглашение VarArgs
о вызове используется с определенными определениями методов, которые принимают переменное число параметров. Метод, использующий соглашение о вызове VarArgs
, не соответствует спецификации CLS и может быть недоступен на разных языках программирования.
В C# VarArgs
соглашение о вызове используется, когда список параметров метода заканчивается ключевое слово __arglist
. Visual Basic не поддерживает VarArgs
соглашение о вызовах, а C++ позволяет использовать его только в неуправляемом коде, использующего многоточие ...
нотации.
Устранение нарушений
Чтобы устранить нарушение этого правила в C#, используйте парамы ключевое слово вместо __arglist
.
Когда лучше отключить предупреждения
Для этого правила отключать вывод предупреждений не следует.
Пример
В следующем примере показаны два метода, которые нарушают правило, и тот, который удовлетворяет правилу.
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);
while (argumentIterator.GetRemainingCount() > 0)
{
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]);
}
}
}
}
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по