C# Dynami c в качестве аргумента типа - PullRequest
0 голосов
/ 25 января 2020

В книге C# в разделе Глубина, раздел 4.1.4, Джон Скит называет два правила использования динамических c:

Тип не может указывать, что он реализует интерфейс использование Dynami c в любом месте аргумента типа.

Пока все хорошо.

Но сразу после этого он заявляет:

Класс может указывать базовый класс, который использует Dynami c в аргументе типа, даже как часть аргумента типа интерфейса.

Итак, производный от класса generi c с использованием Dynami c в качестве типа аргумент в порядке. Тоже хорошо. Но что это значит, что вы можете использовать его «даже в качестве аргумента типа интерфейса»? Что такое «аргумент типа интерфейса»? Разве это не ISomeInterface<TInterfaceTypeArgument>? Разве это не то, что невозможно, как в приведенном выше предложении?

Что я неправильно понимаю?

1 Ответ

0 голосов
/ 25 января 2020

Ах, я думаю, я понял:

class Derived : Base<ISomeInterface<dynamic>>

также разрешено.

...