Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
type Class<'T when 'T : (static member staticMethod1 : unit -> 'T) > =
class end
в C#, структурная типизация не поддерживается
GetEnumerator, возвращающий объект с методом MoveNext и свойством Current. Оператор await применим к любому объекту, реализующему awaitable паттерн – опять же, никаких интерфейсов и базовых типов. LINQ-операторы тоже ожидают наличия методов .Select, .SelectMany, .Where и других. Ну и в дополнение ко всему, вроде бы во всех упомянутых сценариях это могут быть как extension-методы, так и «обычные»."...compatibility and equivalence are determined by the type's actual structure or definition [...] It contrasts with [...] duck typing, in which only the part of the structure accessed at runtime is checked for compatibility".
Структурная типизация в C#