Из этого поста я не понял, чем вы недовольны? :)
Я прекрасно знаю чем каст от as отличается. Но спасибо, что напомнили.
И я действительно не вижу что в моем коде потенциально опасного. Предложите, пожалуйста свой вариант.
Если вы сомневаетесь в смысле данных расширений, то это другое дело. Я не агитирую за их использование. Я просто предлагаю свой вариант. Мне он нужен, я его использую.
Промолчать никак? Одно могу посоветовать, если не нравится - не читайте мои посты, потому что я и дальше буду продолжать в том же духе. Практика показывает, что какое-никакое внимание они притягивают. А в связи с тем, что на сайте и вовсе нет материалов по .net я считаю, что ваш совет не обоснован.
Читайте внимательнее: "Этот код следует расположить в методе Page_Load или там где следует из логики вашего элемента управления.". Из этого следует, что я привел только кусок функционала, использование его уже работа конкретного программиста и ситуации.
В данном контексте они не опасны просто потому что проверяется p_member.MemberType. Если же все же возникнет такая интересная ситуация когда MemberType будет содержать одно, а объект другое, то это уже проблема дургого характера.
Про "понадобилось" я уже объяснял и в самом топике и ниже в комментариях.
Сорри, а можно цифры продаж калины? Или хоть какие-то цифры? Пока только "Сколько автомобилей Калина, только благодаря этой рекламной кампании АвтоВАЗ не продал - сейчас уже не подсчитать, но шутка явно не удалась." - но это не серьезно. На какие факты вы опираетесь? Мне интересно. А вдруг все в точности наоборот, увидел человек на фото колено робота и пошел тутже покупать себе калину.
В начале статьи я написал что и как. Мне хотелось бы выложить несколько статей по созданию полезных базовых классов для страниц в asp.net. Там всюду используются атрибуты, поэтому первая статья типа вводной для описания одного из инструментов.
В остальном: хорошее предложение! Спасибо :) По слову "шаблоны" в вас сразу можно определить бывалого C++ программера, я прав? Generics переводят обычно как "обобщения".
А может мне кто-нибудь пояснить, вот пример в конце, он уже ускорен в 4 раза на четырехядерном процессоре или еще что-то надо делать? Еще хотелось бы знать, как erlang работает на windows, каким образом он в одном winapi процессе умудряется делать распаралелливание без тех же winapi потоков? Раскрывается ли erlang на windows?
Большое спасибо! Приятно видеть среди пустых комментариев толковое замечание. Приму к сведению, но переделывать уже не стану. Топик считаю исчерпанным.
Прошу всех не увлекаться и не писать тут про garbage collection и прочие вещи managed кода. Это правда отвлекает от темы. Предлагаю специалистам поднять эту тему в отдельном топике. Мне самому было бы интересно почитать.
Рихтер утверждает, что AppendFormat один из самых часто используемых методов. Значит не критично в принципе. Что касается практики, я провел некоторые эксперименты и убедился что разницы не видно. Наоборот, иногда ваш метод проигрывал по скорости, скорее всего из-за лишнего вызова функции. Впрочем, этот вопрос остается открытым и думаю в разных ситуациях можно применять тот или иной способ.
Не айс. Хотя бы потому что я часто через дизайнер удаляю и добавляю таблицы, следовательно и определения классов будут удаляться и все ваши и изменения в том числе. Никому не рекомендую руками редактировать сгенерированный cs файл DataContext ORM.
Да и главное условие, все исходные коды partial классов должны быть на руках во время компиляции. Нельзя расширить класс имея только сборку где он лежит.
Есть partial классы. Их можно расширять как душе вздумается. Для меня сейчас это актуально в основном для расширения функционала DataContext классов, которые генерируются при создании ORM базы данных (LINQ to SQL classes). Очень удобно расширить объектную модель какой-нибудь таблицы "Cities" методом типа GetCityBanks. А потом писать city.GetCityBanks()...
Беда такого подхода в том, что в итоге мы делаем контрол для включения в другой контрол. Не знаю, насколько это грамотно, но мне лично не нравится. Еще, например в случае установки свойства visible = false для нашего контрола ваш вариант все равно добавит ссылку на js в код. Для того, чтобы отследить эту ситуацию в ваш контрол надо добавлять логику по включению/выключению. Потом, есть смысл отслеживать postback'и. Да еще много чего может понадобится. В итоге, придется сделать ScriptIncluder эдаким ящиком с кучей рычагов, вместо того, чтобы гибко вызывать две функции там где нужно... Я вполне понимаю, что смысл в создании ScriptIncluder есть, но пока я придерживаюсь своего варианта.
Я прекрасно знаю чем каст от as отличается. Но спасибо, что напомнили.
И я действительно не вижу что в моем коде потенциально опасного. Предложите, пожалуйста свой вариант.
Если вы сомневаетесь в смысле данных расширений, то это другое дело. Я не агитирую за их использование. Я просто предлагаю свой вариант. Мне он нужен, я его использую.
Про "понадобилось" я уже объяснял и в самом топике и ниже в комментариях.
В остальном: хорошее предложение! Спасибо :) По слову "шаблоны" в вас сразу можно определить бывалого C++ программера, я прав? Generics переводят обычно как "обобщения".