Ковариантность и контрвариантность делегатов



Вопрос 1

Что такое ковариантность делегата?

Вопрос 2

Что такое контвариантность делегата?

Вопрос 3

Дан делегат:

1 delegate T Factory<out T>();

Этот делегат является ковариантным или контрвариантным?

Вопрос 4

Что выведет на консоль следующая программа и почему?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Person { public string Name { get; set; } public virtual void Display() => Console.WriteLine($"Person {Name}"); } class Client : Person { public override void Display() => Console.WriteLine($"Client {Name}"); }   class Program { delegate void DisplayHandler<T>(T item); static void Main(string[] args) { DisplayHandler<Person> personHandler = PersonInfo; DisplayHandler<Client> clientHandler = personHandler;   clientHandler(new Client { Name = "Bob" }); Console.Read(); } private static void PersonInfo(Person p) => p.Display(); private static void ClientInfo(Client p) => p.Display(); }

Пространства имен

Вопрос 1

Есть следующий код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 using System;   namespace HelloApp { class Program { static void Main(string[] args) {   } } } namespace Foo { namespace Boo { class Baz {   } } }

Как в методе Main можно обратиться к имени Baz (например, создать объект класса Baz)?

 


Дата добавления: 2021-05-18; просмотров: 83; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!