Уверены, что везде используется include_once вместо include ? Или этот класс определен в одном только файле?
include_once возвращает 0(false) , если не найден файл,(не уверен)
Кирилл:
Роман Мирр внизу написал, как это делается.
Извиняюсь,но до такой степени я уже не буду углубляться.
Контакты в профиле, если будет необходимость.
Кирилл: самый просто вариант - c#+ плюс регулярки.
ищете вхождения
var c1= ***do...{
var c2= ***for...{
var c3= ***while.(...)
....=пробелы,табы,переводы строк
****=пробелы,табы,переводы строк ,точка с запятой
потом с3=с3-с1 (удаляем while,который относится к do)
Кирилл: любой или попроще? В си есть макросы,которые могут развернуться в код.
Если предположить, что макросов нет, то вариантов 3.
1.брать готовый парсер (не пользовался, ничего не предложу)
2. парсить самому считывая по символу ,самому определять вхождения while do for (писать аккуратно код,долго и лениво)
3. с помощью правильно составленных регулярных выражений найти for do while (самый простой вариант, но нужно отсеить строчки и комментарии)
При этом нужно учесть ,что в тексте могут встретиться литеральные строчки,внутри которыъ может что угодно и комментарии ,в которых может быть все,что угодно.
Кирилл: Есть возможность уточнить задание(возможно ли попадание do while внутри комментариев или литеральных переменных (строк)) и уточнить разрешенные инструменты? (либы)
Кирилл: В идеале взять готовый лексический парсер(точное название не знаю), или с помощью регулярок посчитать вхождения for do while c учетом пробелов и скобок вокруг них. Тут есть шанс нарваться на строку или комментарий, в которой будут эти слова,но реального кода они не дают. Придется из отсеивать,если такое возможно.
BadCats: event генерирует add+remove метод,который вызывается в коде через += или -=, можно даже самому их написать ,аналогично как в свойствах пишется get or set, дальше уже очевидно, почему невозможно вызывать invoke снаружИ. Изнутри можно ,плюшка от компилятора и языка.
Павел Каптур: в любом случае, при отсутствии дублирования код разносится по разным классам и все. Я любитель fluent кода, если это имеет смысл. Если программа открытая, выкладывайте на гит, народ сам подтянется, подскажет.
Anna Grimes: Если,конечная цель выдавать картинки на своем сайте, 2 строчки кода чуть выше = lazy image loading, Иначе, не спеша, качаем. Картинки по 1 мб.
Anna Grimes: ЕСли поддерживается keep-alive,то можно с одного физического коннекта делать подряд несколько хттп запросов и качать картинку. Не факт,что это на что-то повлияет,в плане учета лимита скачек.И не уверен,что курл это поддерживает.
include_once возвращает 0(false) , если не найден файл,(не уверен)