Если у меня есть такой метод:
public void DoSomething(int Count, string[] Lines) { //Do stuff here... }
Почему я не могу так это назвать?
DoSomething(10, {"One", "Two", "Three"});
Что будет правильным (но, надеюсь, не долгим путем)?
вы можете сделать это:
DoSomething(10, new[] {"One", "Two", "Three"});
при условии, что все объекты одного типа, вам не нужно указывать тип в определении массива
Если DoSomething - это функция, которую вы можете изменить, вы можете использовать ключевое слово params для передачи нескольких аргументов без создания массива. Он также будет правильно принимать массивы, поэтому нет необходимости «деконструировать» существующий массив.
DoSomething
params
class x { public static void foo(params string[] ss) { foreach (string s in ss) { System.Console.WriteLine(s); } } public static void Main() { foo("a", "b", "c"); string[] s = new string[] { "d", "e", "f" }; foo(s); } }
Выход:
$ ./d.exe a b c d e f
Вы можете создать его, передав его так:
DoSomething(10, new string[] { "One", "Two", "Three"});
Попробуйте это:
DoSomething(10, new string[] {"One", "Two", "Three"});