Делегат Func, bool, double, double> - C#
Формулировка задачи:
Задание: реализуйте пользовательский тип делегата требуемой сигнатуры и выполните с его использованием вызов нескольких методов (с корректной сигнатурой).
a) Func<Action<char>, bool, double, double>
b) Func<Action<int>, bool, char, string>
a)
Как реализовать b)?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
Func<Action<char>, bool, double, double> lambda = (f, flag, x) =>
{
f('a');
return (flag)?(2*x):(x*x);
};
Action<char> TT = MyFunc;
Console.WriteLine(lambda(TT, true, 2));
}
static void MyFunc(char s) {
Console.WriteLine(s);
}
}
} Решение задачи: «Делегат Func, bool, double, double>»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LB1
{
class Program
{
public static void Main(string[] args)
{
Func<Action<int>, bool, char, string> lambda = (x, flag, y) =>
{
x(9);
return (flag) ? "flag is true " + y : "flag is false " + y;
};
Action<int> TT = MyFunc;
Console.WriteLine(lambda(TT, true, 'M'));
Console.WriteLine(lambda(TT, false, 'O'));
Console.ReadLine();
}
static void MyFunc(int s)
{
s++;
Console.WriteLine(s);
}
}
}