Cześć. Zacząłem się bawić w C# i wykorzystałem Func<double, double> przy obliczaniu całki w Math.NET, ale funkcja ta, przyjmuje tylko jeden argument. Obecnie mój kod wygląda tak:
static int i2 = 0;
static double T2 = 0;
static double MyFunction(double t)
{
return (t * t) * Math.Cos(2 * Math.PI * (1/T2) * i2 * t);
}
static double calculateAi(int i, double T, Func<double, double> func)
{
i2 = i;
T2 = T;
double result = 0;
result = 2 / T * SimpsonRule.IntegrateComposite(func, 0, T, 100);
return result;
}
static void Main(string[] args)
{
Console.WriteLine(calculateAi(1, 2, MyFunction)); //tutaj chciałbym przekazać dodatkowe parametry
Zastanawiam się, czy nie da się przekazać pozostałych argumentów jako np. stałe, jeżeli MyFunction miałoby więcej niż 1 parametr, np w ten sposób? Wyglądałoby to np. tak:
static double MyFunction(double t, double i2)
{
return (t * t) * Math.Cos(2 * Math.PI * (1 / T2) * i2 * t);
}
static void Main(string[] args)
{
Console.WriteLine(calculateAi(1, 2, (MyFunction, 2)));
Console.ReadKey();
}