Size: a a a

2020 April 24

Q

Qart2003 in С#
Stas
И что? Я тебе обяснил почему это не возможно. Ты мне обяснил как технически решена эта проблема. Никакого нарушения ООП здесь нет
ок, был вопрос почему не работает: объяснил что типы разные и почему это важно, все
источник

S

Stas in С#
Qart2003
ок, был вопрос почему не работает: объяснил что типы разные и почему это важно, все
Согласись это не много не тот ответ. Не работает потому что это логически не возможно, для чего технически идёт прямая проверка на тип. Скажем так, полный правильный ответ это мой + твой.
источник

𝙇𝙆

𝙇𝙚𝙤𝙣𝙞𝙙 𝙆𝙪𝙨𝙝𝙣𝙖𝙧𝙤𝙫... in С#
Stas
Согласись это не много не тот ответ. Не работает потому что это логически не возможно, для чего технически идёт прямая проверка на тип. Скажем так, полный правильный ответ это мой + твой.
Вот так можно:
источник

S

Stas in С#
Да можно, об этом я в самом начале вопроса говорил
источник

S

Stas in С#
Но тип приходится всеравно указывать явно, и нельзя в делегат с user засунуть UserChild
источник

D

Dmitry in С#
Я так пытался, но все-равно потом приходилось приводить типы и я возвращался к той проблеме из-за которой вопрос и возник
источник

D

Dmitry in С#
Stas
Но тип приходится всеравно указывать явно, и нельзя в делегат с user засунуть UserChild
Да))
источник

D

Dmitry in С#
В общем разочарование в c#
источник

𝙇𝙆

𝙇𝙚𝙤𝙣𝙞𝙙 𝙆𝙪𝙨𝙝𝙣𝙖𝙧𝙤𝙫... in С#
Dmitry
Я так пытался, но все-равно потом приходилось приводить типы и я возвращался к той проблеме из-за которой вопрос и возник
Что значит "приходилось приводить типы"? Может ты не тем инструментом задачу решаешь?
источник

D

Dmitry in С#
Stas
Но тип приходится всеравно указывать явно, и нельзя в делегат с user засунуть UserChild
Вот примерно это значит)
источник

Q

Qart2003 in С#
Stas
Согласись это не много не тот ответ. Не работает потому что это логически не возможно, для чего технически идёт прямая проверка на тип. Скажем так, полный правильный ответ это мой + твой.
ну да
источник

S

Stas in С#
Dmitry
В общем разочарование в c#
Это не проблема C#, это логика)
источник

𝙇𝙆

𝙇𝙚𝙤𝙣𝙞𝙙 𝙆𝙪𝙨𝙝𝙣𝙖𝙧𝙤𝙫... in С#
Dmitry
Вот примерно это значит)
В обратную сторону тоже не подходит?
источник

𝙇𝙆

𝙇𝙚𝙤𝙣𝙞𝙙 𝙆𝙪𝙨𝙝𝙣𝙖𝙧𝙤𝙫... in С#
Может ты в целом задачу опишешь?
источник

D

Dmitry in С#
если б было ограничение по логике - я б эту задачу не решил. Но ничего невозможного нет
источник

S

Stas in С#
Dmitry
если б было ограничение по логике - я б эту задачу не решил. Но ничего невозможного нет
Почитай внимательно что я написал
источник

S

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

S

Stas in С#
Ты должен решить проблему по другому, все твои методы должны быть user, а уже внутри метода, самое простое делать проверку на тип и вызывать конкретный метод
источник

𝙇𝙆

𝙇𝙚𝙤𝙣𝙞𝙙 𝙆𝙪𝙨𝙝𝙣𝙖𝙧𝙤𝙫... in С#
Так как раз таки не пох. Спецификация не позволяет неявно приводить базовый класс к наследнику.
источник

𝙇𝙆

𝙇𝙚𝙤𝙣𝙞𝙙 𝙆𝙪𝙨𝙝𝙣𝙖𝙧𝙤𝙫... in С#
Это не только к делегату относится.
источник