
Size: a a a
set
осуществляется с использованием объекта класса z
, значения которого передаются в качестве параметров a
и b
. Поскольку переменные c1
и c2
являются публичными членами класса z
, то они доступны с помощью имени класса. В результате мы получаем 10
20
и 5
125
.delegate T Factory<out T>();
Ковариантность
предполагает возможность возвращать из метода объект, тип которого является производным от типа, возвращаемого делегатом, а контрвариантность
предполагает возможность передавать в метод объект, тип которого является более универсальным по отношению к типу параметра делегата. void
, Task
, Task<T>
или ValueTask<T>.