Ковариантность и контрвариантность делегатов
⇐ ПредыдущаяСтр 3 из 3
Вопрос 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!