170 похожих чатов

Здравствуйте! У меня весьма "теоретический" вопрос. Как в коде указать,

что уже существующий класс реализует мой пользовательский (кастомный) интерфейс? А именно, одномерный массив переменных типа T реализует мой интерфейс IIndexable<T>? Или такого вообще на практике не потребуется? Ведь я могу продублировать мой метод: написать отдельно для T[], а отдельно для IIndexable<T>?

18 ответов

4 просмотра

По правилам типизации c#, чтобы реализовать интерфейс нужно явно прописать class A : I То что ты описал звучит как утиная типизация — т. е. что этот класс не указал, что он реализовал мой интерфейс, но на самом деле реализовал. В C# утиной типизации нет (за одним исключением, но это нерелевантно)

Ayrat Hudaygulov
в C# утиной типизации навалом

Да? Кроме GetEnumerator я не могу вспомнить ничего

без тех самых тайпклассов делается через задницу патерном адаптер

Ayrat Hudaygulov
await, using, foreach

Using вроде бы требует реализовать IDisposable. Или достаточно чтобы просто был метод Dispose()? Foreach это как раз таки GetEnumerator Про await и инициализторы да, запамятовал

👁👃👁️
😳⁉️

Интерфейс не обязателен. Достаточно реализовать GetEnumerator, MoveNext и Current

Ihor D.
Интерфейс не обязателен. Достаточно реализовать Ge...

Вроде бы "или". Т. е. либо был метод GetEnumerator, либо MoveNext и Current

Andrew Shurunov
А не. Глупость сказал хД

Да я сам сейчас чекаю не сказал ли я глупость)

Andrew Shurunov
А не. Глупость сказал хД

Насколько я помню класс, который мы передаем в foreach должен иметь GetEnumerator(), который возвращает тип, который имеет MoveNext() и Current. Вроде бы так

Можно наследоваться от класса, а затем указать в новом классе интерфейс

Mr. N
Можно наследоваться от класса, а затем указать в н...

это называется умным словом адаптер. и не все классы можно унаследовать. расширь строку например)

заюзай стандартный интерфейс. IReadOnlyList вроде позволяет по индексу читать

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
23
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
а не подскажете вот это скрин из какой IDE ?
Iluha Companets
14
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Комрады, подскажите, в дельфях есть компоненты а-ля TDirectorySelect?
Ed Doc
15
Карта сайта