Ага предположим что я мог бы в делегат с аргументом User, засунуть метод с UserChild. Окей, теперь я вызываю делегат, он принимает User, а значит и всех его потомков, ну ок, отдам туда User, а метод то принимает UserChild и что ему тогда делать с этим User, ведь у UserChild есть ещё и свои поля которые могут быть вызваны внутри этого метода. Ещё есть вопросы о том что здесь пох на ООП?