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

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

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

18 ответов

13 просмотров

По правилам типизации 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 вроде позволяет по индексу читать

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта