это именно поиск и замена. поиск сложных конструкций с учетом семантики языка и замена на такие же сложные конструкции. регулырные выражения — это то, как раньше неудачно и монструозно иногда решали это задачу.
и к рефакторингам это не имеет никакого отношения. рефакторинги — это в первую очередь сложная логика по сохранению функциональности кода. Search With Pattern — этого не делает и для этого не задумывался.
Будет в 6.0 или 5.5 работать Find Usages на скомпилированном коде, будут и присвоения внутри библиотек показываться. Но в любом случае, решарпер никогда не сможет отслеживать вызовы через Reflection, просто потому, что это динамическое связывание и для его обработки надо запускать программу :)
Опять же, вас обычно уровень, на котором вы инжектиреуете не очень интересует. Интересно как ходят данные в сложных алгоритмах, а то что вы добрались до kernel.Get — уже достаточно. Далее вы берете в руки другую тулзу и разбираете ужаснейшые конфиги, или аттриюуты в вашем случае и со временем приходите к выводу, что Ninject — зло :)))
я спросил совершенно конкретный вопрос про ложь и почему вы считаете ее допустимой. и привел очевидный пример того, когда стремление понравиться будет стрелять вам в ногу.
есть еще один фактор. если ваш профессионализм растет, то вы будете встречаться со все более пытливыми работодателями. они вас живьем съедят, если вы будите что-то «знать», но не сможете сказать внятного слова.
есть такой контрольный вопрос на интервью: «как вы относитесь к сверхурочной работе?». если человек отвечает что-то радостно-восторженное, то это сильный повод начать сомневаться в его адекватности.
Добавление O(log n), потому что надо найти место вставки. В хеше O(1), если массив не переполнен, если переполнен O(n) — но это происходит редко, и вообще добавление N элементов в хэш стоит 2N.
Подсчет хэша — это константное время. Бинарный поиск — зависит от n. Быстрее в итоге хэш, потому что не растет время доступа.
Dictionary от LOH не спасет, потому что 21тысяча объектов в в нем — и он сам попадет в LOH. Все контейнеры должны быть заново реализованы на основе ChunkedList.
и к рефакторингам это не имеет никакого отношения. рефакторинги — это в первую очередь сложная логика по сохранению функциональности кода. Search With Pattern — этого не делает и для этого не задумывался.
Опять же, вас обычно уровень, на котором вы инжектиреуете не очень интересует. Интересно как ходят данные в сложных алгоритмах, а то что вы добрались до kernel.Get — уже достаточно. Далее вы берете в руки другую тулзу и разбираете ужаснейшые конфиги, или аттриюуты в вашем случае и со временем приходите к выводу, что Ninject — зло :)))
есть еще один фактор. если ваш профессионализм растет, то вы будете встречаться со все более пытливыми работодателями. они вас живьем съедят, если вы будите что-то «знать», но не сможете сказать внятного слова.
есть такой контрольный вопрос на интервью: «как вы относитесь к сверхурочной работе?». если человек отвечает что-то радостно-восторженное, то это сильный повод начать сомневаться в его адекватности.
никто не знает всего.
но вообще, конечно перед OOM делается попытка GC, так что может и LOH
Подсчет хэша — это константное время. Бинарный поиск — зависит от n. Быстрее в итоге хэш, потому что не растет время доступа.
Но. Он тратит лишнюю память. И операция поиска в нем O(log n), а не O(1) как в хеше. И добавление тоже дорогое.
давайте постараемся жить в реальном мире с реальными историческими, и не всегда собственными проблемами.