If I have a method like this:
public void DoSomething(int Count, string[] Lines)
{
//Do stuff here...
}
Why can't I call it like this?
DoSomething(10, {"One", "Two", "Three"});
What would be the correct (but hopefully not the long way)?
you can do this :
DoSomething(10, new[] {"One", "Two", "Three"});
provided all the objects are of the same type you don't need to specify the type in the array definition
If DoSomething
is a function that you can modify, you can use the params
keyword to pass in multiple arguments without creating an array. It will also accept arrays correctly, so there's no need to "deconstruct" an existing array.
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);
}
}
Output:
$ ./d.exe a b c d e f
Try this:
DoSomething(10, new string[] {"One", "Two", "Three"});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With