to możliwe napisać coś takiego:dynamiczny argumenty definicja w języku C#
function foo(a,b,c) {
return a + b + c;
}
var args = [2,4,6];
var output = foo.apply(this, args); // 12
C# istnieje odpowiednik .apply
javascript?
to możliwe napisać coś takiego:dynamiczny argumenty definicja w języku C#
function foo(a,b,c) {
return a + b + c;
}
var args = [2,4,6];
var output = foo.apply(this, args); // 12
C# istnieje odpowiednik .apply
javascript?
Można użyć słowa kluczowego params:
object foo(params int[] args) { ... }
Następnie można wywołać metodę tak:
var output = foo(2, 4, 6);
lub tak:
var args = new [] {2, 4, 6};
var output = foo(args)
Minęło trochę czasu od Zrobiłem dowolny javascript, ale rozumiem, że metoda apply
jest sposobem tworzenia delegata. W języku C# istnieje wiele sposobów, aby to zrobić. Chciałbym zacząć od czegoś takiego:
class Program
{
static void Main(string[] args)
{
Foo foo = new Foo();
Func<int[], int> SumArgs = foo.AddArgs; // creates the delegate instance
// get some values
int[] nums = new[] { 4, 5, 6 };
var result = SumArgs(nums); // invokes the delegate
Console.WriteLine("result = {0}", result1);
Console.ReadKey();
}
}
internal class Foo
{
internal int AddArgs(params int[] args)
{
int sum = 0;
foreach (int arg in args)
{
sum += arg;
}
return sum;
}
}
Jest też inny sposób przy użyciu LINQ, zamiast foreach
, można użyć:
return args.Sum();
object[] args = new object[] { 2, 4, 6 };
this.GetType().GetMethod("foo").Invoke(this, args);
Szukasz sposobu na skonfigurowanie określonej funkcji, aby można było przekazać tablicę jako parametr? A może szukasz sposobu na wywołanie dowolnych funkcji z tablicą jako parametrem? –
usunięto pozdrowienie: "Z góry dziękuję.", Nie rób tego następnym razem :) –