Описание тега params-keyword

params - это ключевое слово C#, которое допускает переменное количество параметров в вызовах функций.
2 ответа

Как обеспечить ошибку компиляции при изменении подписи при использовании ключевого слова "params"

У меня есть такой метод: public void Foo(params string[] args) { bar(args[0]); bar(args[1]); } Новые требования приводят к таким изменениям: public void Foo(string baz, params string[] args) { if("do bar".Equals(baz)) { bar(args[0]); bar(args[1]); }…
05 дек '13 в 13:00
5 ответов

Распаковка массива в аргументы метода

Как вы знаете, C# поддерживает различные методы через params ключевое слово: int Add(params int[] xs) { return xs.Sum(); } Который затем может быть вызван с любым количеством аргументов, которые вам нравятся: Add(1); Add(1, 2); Add(1, 2, 3); Но сказ…
5 ответов

Могу ли я использовать params в делегатах Action или Func?

Когда я пытаюсь использовать params в делегате Action... private Action<string, params object[]> WriteToLogCallBack; Я получил эту ошибку времени проектирования: Недопустимые маркеры 'params' в объявлении члена класса, структуры или интерфейса…
30 окт '10 в 16:36
3 ответа

Могут ли params[] быть параметрами для лямбда-выражения?

Недавно я начал изучать лямбда-выражения, и возник вопрос. Скажем, у меня есть функция, которая требует неопределенного количества параметров. Я бы использовал ключевое слово params для моделирования этого переменного числа параметров. Мой вопрос: м…
26 июн '12 в 20:01
4 ответа

Как использовать ключевое слово params вместе с информацией о вызывающем абоненте в C#?

Я пытаюсь объединить информацию о вызывающей стороне C# 5.0 вместе с ключевым словом C# params. Намерение состоит в том, чтобы создать оболочку для каркаса журналирования, и мы хотим, чтобы регистратор форматировал текст как String.Format. В предыду…
03 ноя '14 в 16:51
1 ответ

Контракт работы WCF с параметром массива params

Я думаю, что у этого парня такая же проблема, как и у меня, но мне нужно уточнить: сервис wcf с параметрами В любом случае, я пытаюсь написать контракт операции WCF, который принимает строку так же, как String.Format, используя массив объектов param…
0 ответов

C#: в чем разница между ключевым словом params и значением по умолчанию

Название в значительной степени говорит само за себя, но я хотел бы знать, есть ли преимущество в использовании одного или другого? Например: public void MyMethod(params string[] list) { } public void MyMethod(string[] list = new string[] { }) { } Ч…
11 авг '17 в 16:42
4 ответа

Какой самый краткий способ для массива ряда строковых переменных, которые могут быть пустыми

Мне нужно массив специального набора строк, как это string a = null; string b = "include me"; string c = string.Empty; string d = "me too!"; без включения нулевых или пустых строк. Я знаю, что могу использовать дочернюю функцию и params: private Lis…
11 мар '15 в 01:17
3 ответа

Использование атрибута Cref XML-комментария C# с синтаксисом params

В C# я пытаюсь использовать для ссылки на сигнатуру метода, содержащую ключевое слово params. Я знаю, что это преобразует список параметров в массив, но я даже не могу понять, как ссылаться на массив в атрибуте CREF. Я ничего не нахожу в своих поиск…
17 апр '09 в 16:20
2 ответа

Изменение модификатора params в переопределении метода

Я знаю, что params модификатор (который превращает один параметр типа массива в так называемый "массив параметров") определенно не является частью сигнатуры метода. Теперь рассмотрим этот пример: class Giraffid { public virtual void Eat(int[] leaves…
1 ответ

Передать бесконечные параметры по ссылке (используя ключевые слова params и ref вместе)

Можно ли передать бесконечное количество параметров в мою функцию по ссылке? Я знаю, что это не правильно, но есть ли способ сделать это? private bool Test(ref params object[] differentStructures) { //Change array here and reflect changes per ref } …
03 мар '16 в 14:38
1 ответ

Просмотр словарей с параметрами в C #

Я создал метод, который получает неопределенное количество параметров словарей и сканирует содержимое всех из них, но тот же не рассматривается, он выдает ошибку в первом или втором foreach, в зависимости от того, что я исправляю. Consegundo не могу…
19 авг '13 в 10:43
1 ответ

Параметры C# без встроенного массива вызывают ошибку "Спецификации именованных аргументов должны появляться после того, как все фиксированные аргументы были указаны"

Я создал метод с именем "tag", который возвращает объект HtmlTag и получает параметры типа "HtmlTag" (см. Ниже). Я пытаюсь передать параметры без встроенного массива, но получаю ошибку: "Спецификации именованных аргументов должны появляться после то…
25 мар '16 в 08:39
1 ответ

Можно ли указать аргументы конструктора переменной длины при регистрации в Unity?

У меня есть интерфейс, IFooи три конкретных класса: FooA : IFoo, FooB : IFoo, а также MultiFoo : IFoo, Конструктор для MultiFoo выглядит так: public MultiFoo(params IFoo[] foos) { ... } Могу ли я указать конкретные переопределения разрешения при рег…
3 ответа

Проблемы с пространством имен (отсутствует}?) И передача параметров в метод для отображения массивов

Две проблемы с моим кодом: 1. Я получаю странные синтаксические ошибки с Console.Writeline в Main(), и я думаю, что у меня отсутствует правильная фигурная скобка '}' 2- Я не могу понять свой первый метод после Main(). Это просто должен быть простой …
07 май '15 в 15:30
1 ответ

Практическое использование индексатора параметров

Недавно я обнаружил, что индексатор может принимать массив аргументов как params: public class SuperDictionary<TKey, TValue> { public Dictionary<TKey, TValue> Dict { get; } = new Dictionary<TKey, TValue>(); public IEnumerable<TV…
1 ответ

Как устранить ошибку ключевого слова с помощью макроса SAS

Я запускаю этот макрос SQL в SAS. %macro calc(table=,cut=,whereclause=); proc sql; &table select &cut as type format = $40. length = 40 ,dt ,count(prod_nbr) as stat ,sum(new) as new ,sum(old) as old ,sum(retired) as retired ,sum(replaced) as…
20 мар '17 в 20:43
5 ответов

Можно ли взорвать массив, чтобы его элементы могли быть переданы методу с ключевым словом params?

Возьмите этот некомпилируемый код, например: public string GetPath(string basefolder, string[] extraFolders) { string version = Versioner.GetBuildAndDotNetVersions(); string callingModule = StackCrawler.GetCallingModuleName(); return AppendFolders(b…
1 ответ

Перегрузка метода в C# ведет себя неожиданно при использовании ключевого слова params

Хорошо, вернемся к основам. Мне интересно, как правильно перегрузить метод с params аргумент. Вот мой сценарий. Я начинаю с моего обычного метода: public void MyMethod(MyObject mo) { // method body } И я создал для него перегрузку, которая выглядит …
05 июн '13 в 16:48
0 ответов

Как передать список параметров PropertyExpression

У меня есть общий репозиторий, в котором я пытаюсь включить функцию, которая принимает список переменных дочерних таблиц для активной загрузки. Функция выглядит так: public IQueryable<T> FindBy(Expression<Func<T, bool>> predicate, …
04 авг '13 в 12:52