es posible escribir algo como:argumentos definición dinámica en C#
function foo(a,b,c) {
return a + b + c;
}
var args = [2,4,6];
var output = foo.apply(this, args); // 12
C# hay un equivalente a .apply
de JavaScript?
es posible escribir algo como:argumentos definición dinámica en C#
function foo(a,b,c) {
return a + b + c;
}
var args = [2,4,6];
var output = foo.apply(this, args); // 12
C# hay un equivalente a .apply
de JavaScript?
Puede utilizar el params palabra clave:
object foo(params int[] args) { ... }
A continuación, puede llamar al método como este:
var output = foo(2, 4, 6);
o como esto:
var args = new [] {2, 4, 6};
var output = foo(args)
Ha sido un tiempo desde He hecho cualquier javascript, pero entiendo que el método apply
es una forma de crear un delegado. En C# hay varias maneras de hacer esto. Me gustaría empezar con algo como esto:
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;
}
}
Hay otra manera usando LINQ, en lugar de la foreach
, puede utilizar:
return args.Sum();
object[] args = new object[] { 2, 4, 6 };
this.GetType().GetMethod("foo").Invoke(this, args);
¿Está buscando una manera de configurar una función particular para que pueda pasar una matriz como parámetro? ¿O está buscando una forma de llamar a funciones arbitrarias con una matriz como parámetro? –
saludo eliminado: "Gracias de antemano", no lo hagas la próxima vez :) –