Есть следующий делегат:
delegate int Operation (int val);
Какие из следующих методов соответствуют данному делегату:
static void Method1(int x) { Console.WriteLine(x * x); } static int Method2(ref int x) { return x * x; } static int Method3(int x, int y) { return x * y; } static int Method4(int x, int y = 7) { return x * y; } static int Method5(out int x) { x = 7; return x * x; }
Ни один из предложенных методов не соответствует делегату Operation.
Что будет выведено на консоль в результате выполнения следующей программы:
class Program { delegate int Operation(int x, int y); static void Main(string[] args) { Operation del = Add; del += Multiply; int result = del(6, 5); Console.WriteLine(result); Console.Read(); } private static int Add(int x, int y) { return x + y; } private static int Multiply(int x, int y) { return x * y; } }
На консоль будет выведено число 30 - результат последнего метода, добавленного в список методов делегата.
Какой будет консольный вывод при выполнении следующей программы:
class Program { delegate void Message(); static void Main(string[] args) { Message mes1 = Hello; mes1 += HowAreYou; mes1 += Hello; mes1 += Hello; mes1 -= Hello; mes1(); Console.Read(); } private static void Hello() { Console.WriteLine("Hello"); } private static void HowAreYou() { Console.WriteLine("How are you?"); } }
Консольный вывод данной прогаммы:
Hello How are you? Hello
Что будет выведено на консоль в результате выполнения следующей программы:
class Program { delegate void Message(); static void Main(string[] args) { Message mes = new Message(Hello); mes += Hi; mes -= Hello; mes -= Hi; mes(); Console.Read(); } private static void Hello() { Console.WriteLine("Hello"); } private static void Hi() { Console.WriteLine("Hi"); } }
При выполнении прогаммы, точнее при выполнении делегата возникнет исключение, поскольку список вызова делегата пуст.