|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
ДиезЕсть общие принципы, общие конструкции, концепции. Общие для разных языков. Вы правы, есть: наследование, полиморфизм, абстракция, инкапсуляция. Диез.NET разрабатывали неглупые люди, видимо были на то причины. Ответы: Да и да. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2015, 18:32 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
Antonariy@Override - это называется аналогичный? без него же не компилится, да? В Java все методы виртуальные, аннотация (скоммуниздили с .NET аттрибуты) @Override лишь показывает, что мы действительно хотим переопределить метод родителя и компилятор должен проверить наличие у родителя метода с таким именем и сигнатурой, отличает override от overload. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2015, 10:48 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
Раз уж заговорили про ко/конрвариантность, значить созрели. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2015, 11:19 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
ЕвгенийВРаз уж заговорили про ко/конрвариантность, значить созрели.а смысл разделять их на два интерфейса? 17664287 (там у меня опечатка, естественно, where T : I User) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2015, 11:28 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
Shocker.ProЕвгенийВРаз уж заговорили про ко/конрвариантность, значить созрели.а смысл разделять их на два интерфейса? 17664287 (там у меня опечатка, естественно, where T : I User) Я про "нарушение" принципа "Return Type Covariance" в C#. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2015, 11:44 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
ДиезRoman Mejtesсамый точный ответ будет: "Потому что" :) потому что, так решили разрабы в МС и как по мне такое решение вполне логично и верно. если так сильно прижало, можно наследовать интерфейс в абстрактном классе, а потом через new переопределить этот метод на метод с типом User и радоваться жизни Спасибо, уже разобрался :) http://blogs.msdn.com/b/cyrusn/archive/2004/12/08/278661.aspx Фича действительно мало востребованная, судя по тому, что этот вопрос у меня только сейчас возник. Посмотрел как ее в Nemerle реализовали без поддержки CLR: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Элегантно :)Мда, я еще на первой страницу предложил использовать явную реализацию интерфейса. Оказываются некоторые не знают, что это такое, хотя в любой книжке вроде рассказывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 09:00 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
Shocker.ProЕвгенийВРаз уж заговорили про ко/конрвариантность, значить созрели.а смысл разделять их на два интерфейса? 17664287 (там у меня опечатка, естественно, where T : I User)все дело в модификаторах: in (Generic Modifier) (C# Reference) out (Generic Modifier) (C# Reference) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 09:07 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
skyANAДиезпропущено... Спасибо, уже разобрался :) http://blogs.msdn.com/b/cyrusn/archive/2004/12/08/278661.aspx Фича действительно мало востребованная, судя по тому, что этот вопрос у меня только сейчас возник. Посмотрел как ее в Nemerle реализовали без поддержки CLR: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Элегантно :)Мда, я еще на первой страницу предложил использовать явную реализацию интерфейса. Оказываются некоторые не знают, что это такое, хотя в любой книжке вроде рассказывается. Это, видимо, в мой огород камешек? :) Про явную реализацию интерфейсов я знаю, конечно. Вопрос был в другом - ковариантность return-типов не реализована на уровне CLR ( http://stackoverflow.com/questions/5709034/does-c-sharp-support-return-type-covariance/5709191#5709191 ), но в Nemerle (который тоже поверх CLR) она присутствует. Мне стало интересно, как они это реализовали. Оказалось, совсем просто; тем же методом, который вы предлагали. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 09:45 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
ДиезskyANAпропущено... Мда, я еще на первой страницу предложил использовать явную реализацию интерфейса. Оказываются некоторые не знают, что это такое, хотя в любой книжке вроде рассказывается. Это, видимо, в мой огород камешек? :) Про явную реализацию интерфейсов я знаю, конечно. Вопрос был в другом...Может стоило прямо вопрос задать? Изначально он был таков: 17666424 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 09:49 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
ЕвгенийВРаз уж заговорили про ко/конрвариантность, значить созрели. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
А что показывает этот пример? Имхо, только то, что проперти - это синтаксический сахар, о чем уже говорили в этом топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 09:51 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
ДиезЕвгенийВРаз уж заговорили про ко/конрвариантность, значить созрели. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
А что показывает этот пример?Показывает то, что есть модификаторы in (контрвариантность) и out (ковариантность) :) Если ищете некий сакральный смысл, то это к автору примера :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 10:00 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
skyANA Covariance and Contravariance (C# and Visual Basic) Ну, вариантность в дженериках и делегатах (aka функциональные типы) - это фича заявлена изначально, и вопросов там нет - работает как и везде :) А тут вопрос жизни и смерти про ковариантность возвращаемых значений, которая не сильно нужна, как выясняется ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 10:02 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
Диез...вопрос жизни и смерти... Диез...не сильно нужна...вопрос исчерпан :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2015, 10:21 |
|
Комбинирование интерфейсов
|
|||
---|---|---|---|
#18+
Бугага! Прошло пять лет (всего-то), и до проектировщиков C# наконец-то дошло, что return-типы ковариантны по своей сути: https://daveabrock.com/2020/07/14/c-sharp-9-target-typing-covariants "It has been a long time, coming—almost two decades of begging and pleading, actually. With C# 9, it looks like return type covariance is finally coming to the language" Что ты на это скажешь, Илон Маск ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2020, 21:27 |
|
|
start [/forum/topic.php?fid=20&msg=38965937&tid=1398457]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 399ms |
0 / 0 |