======
#10 30 20
======
30 20 10
======
20 30 10
======
возникает исключение при попытке обращения по null-ссылке
++++++
Проанализируйте приведенный код.
delegate void MyEventHandler(ref int a);
class MyEvent
{ public event MyEventHandler SomeEvent;
public void OnSomeEvent(ref int d)
{ if (SomeEvent != null) SomeEvent(ref d); } }
class EventTest
{ static void Handler1(ref int b) { b = 2 * b; }
static void Handler2(ref int c) { c = c + 12; }
public static void Main()
{ MyEvent evt = new MyEvent();
int a = int.Parse(System.Console.ReadLine());
if (a > 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler1);
else if (a < 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler2);
evt.OnSomeEvent(ref a); System.Console.WriteLine(a);
} }
Пользователь собирается после запуска программы ввести цифру 5. Укажите результат вывода на консоль после попытки запустить программу на компиляцию и выполнение:
======
#10
======
22
======
15
======
программа не выполняется, так как обнаружена одна или несколько синтаксических ошибок
++++++
Проанализируйте приведенный код.
delegate void MyEventHandler(ref int a);
class MyEvent
{ public event MyEventHandler SomeEvent;
public void OnSomeEvent(ref int d)
{ if (SomeEvent != null) SomeEvent(ref d); } }
class EventTest
{ static void Handler1(ref int b) { b = 2 * b; }
static void Handler2(ref int c) { c = c + 12; Handler1(ref c);}
public static void Main()
{ MyEvent evt = new MyEvent();
int a = int.Parse(System.Console.ReadLine());
if (a > 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler1);
else if (a < 0) evt.SomeEvent += new MyEventHandler(EventTest.Handler2);
evt.OnSomeEvent(ref a); System.Console.WriteLine(a);
} }