Возникло две интересные задачки. В этой статье я раскажу о процессе решения первой из них.
Итак, формулировка задачи:
Есть детали (сборки, компоненты), эти детали собираются из других деталей (правда напоминает дерево?), разные детали могут собираются из одних и тех же деталей. Для наглядности, картинка:
Так вот, необходимо разработать элемент управления, для адекватной работы с такой сетью, т.е. добавление, редактирование связей, просмотр из чего состоит данная деталь, в какие сборки она входит.
Порешаем?
суббота, 25 декабря 2010 г.
воскресенье, 26 сентября 2010 г.
Работа с Excel из C# (забираем из Excel данные)
Итак, начался новый учебный год (с чем кстати всех и поздравляю), появились новые курсы, новые проекты, поэтому продолжу излагать некторые, на мой взгляд интересные, вещи.
Сегодня я хотел бы поговорить о работе с Excel из C#.
Пара коментариев:
1. Я использую VS 2010 и Excel 2007.
2. Как я уже сказал, мне работа с Excel понадобилась в одном из проектов, поэтому примеры будут из этого проекта.
Сегодня я хотел бы поговорить о работе с Excel из C#.
Пара коментариев:
1. Я использую VS 2010 и Excel 2007.
2. Как я уже сказал, мне работа с Excel понадобилась в одном из проектов, поэтому примеры будут из этого проекта.
понедельник, 19 апреля 2010 г.
Особенности работы CLR в .NET framework
Мне кажется, что человеку который программирует на управляемом коде, но ленится вдаваться в то, чем отличается управляемый код от неуправляемого, будет полезно почитать одноименный с этим сообщением, пост на хабре Особенности работы CLR в .NET framework
четверг, 8 апреля 2010 г.
Спецификации для 4-го занятия по Java
Третье задание было скучным, и конкретно меня, вряд ли чему то могло научить. Поэтому сознаюсь - я ленился.
Четвертое задание поинтереснее. Поэтому продолжим.
Четвертое задание поинтереснее. Поэтому продолжим.
вторник, 6 апреля 2010 г.
понедельник, 29 марта 2010 г.
понедельник, 22 марта 2010 г.
Спецификации для 2-го занятия по Java
Продолжим. Правда сегодня я буду лениться и выложу только по одной задаче. Но согласитесь что вторая ничем принципиальным от первой не отличается.
понедельник, 15 марта 2010 г.
Курс по Java (занятие 12.03.10)
Примеры на Java можно скачать здесь. А вот и задачи прошлого раза и новые.
Решения для заданий 1-го занятия по Java
Напоминаю, если вы не сделали еще задачи, то не нажимайте кнопку далее.
Спецификации для заданий 1-го занятия по Java
Я думаю, все кто хотел задачки уже порешали, поэтому начну выкладывать свои решения этих задач. По моему мнению, самый оптимальный вариант в первом сообщении выкладывать спецификацию в виде теста, во втором уже решения. Это позволит тем, кто еще не решал, воспользоваться тестами для проверки правильности, и с другой стороны случайно не увидеть как решать задачу.
Поэтому здесь только спецификации тестирования.
Поэтому здесь только спецификации тестирования.
четверг, 11 марта 2010 г.
понедельник, 1 февраля 2010 г.
События и делегаты
Уроки с ребенком сделаны, жена ушла на маникюр, поговорим о позднем связывании?
Сегодня предлагаю посмотреть более внимательно на события, ну и конечно смотря на события, нам не уйти от делегатов.
Сегодня предлагаю посмотреть более внимательно на события, ну и конечно смотря на события, нам не уйти от делегатов.
понедельник, 11 января 2010 г.
Делегаты и события
На лекциях я обычно привожу пример с методом получающим массив и обрабатывающим его элементы при помощи делегата, являющегося вторым параметром данного метода.
Сегодня я покажу "обратный" пример иллюстрирующий позднее связывание. В одной из своих статей Джоэль Спольски рассматривал интересный пример делегатов. Мне он понравился и мы посмотрим его более расширенную версию.
Сегодня я покажу "обратный" пример иллюстрирующий позднее связывание. В одной из своих статей Джоэль Спольски рассматривал интересный пример делегатов. Мне он понравился и мы посмотрим его более расширенную версию.
среда, 6 января 2010 г.
Полиморфизм
Начнем как водится с начала. Дадим определение понятия полиморфизм:
1. Полиморфизм (от греч. πολύ — «много» и μορφή — «форма», многообразный) в программировании — это возможность использования в одном и том же контексте различных программных сущностей (объектов, типов данных и т. д.) с одинаковым интерфейсом. (Журнал Функциональное программирование).
2. Полиморфи́зм — взаимозаменяемость объектов с одинаковым интерфейсом (Википедия).
3. Полиморфизм — это механизм позволяющий вызывать методы классов объектов, а не классов объектных переменных, ссылающихся на эти объекты (ваш покорный слуга).
1. Полиморфизм (от греч. πολύ — «много» и μορφή — «форма», многообразный) в программировании — это возможность использования в одном и том же контексте различных программных сущностей (объектов, типов данных и т. д.) с одинаковым интерфейсом. (Журнал Функциональное программирование).
2. Полиморфи́зм — взаимозаменяемость объектов с одинаковым интерфейсом (Википедия).
3. Полиморфизм — это механизм позволяющий вызывать методы классов объектов, а не классов объектных переменных, ссылающихся на эти объекты (ваш покорный слуга).
Позднее связывание
Наверно из всех тем связанных с ООП тема позднего связывания является одной из самых тяжелых для понимания. В связи с этим, я хотел бы рассмотреть три механизма позднего связывания более предметно. Рассматривать я их буду в следующем порядке:
1. Полиморфизм
2. Делегаты / события
3. Reflection (отражение)
Начну с того, что я буду вкладывать в понятие "позднее связывание".
Позднее связывание это механизм позволяющий отложить принятие решения о том, какой код будет выполняться в данном месте программы на время более позднее, чем написание именно этого фрагмента кода. Когда будет приниматься решение? Да когда угодно! Когда другой программист использует ваш код в своем коде, или когда выполняется программа содержащая ваш код. Т.е. решение принимается гарантированно после того, как вы нажали Ctrl+Shift+B.
1. Полиморфизм
2. Делегаты / события
3. Reflection (отражение)
Начну с того, что я буду вкладывать в понятие "позднее связывание".
Позднее связывание это механизм позволяющий отложить принятие решения о том, какой код будет выполняться в данном месте программы на время более позднее, чем написание именно этого фрагмента кода. Когда будет приниматься решение? Да когда угодно! Когда другой программист использует ваш код в своем коде, или когда выполняется программа содержащая ваш код. Т.е. решение принимается гарантированно после того, как вы нажали Ctrl+Shift+B.
вторник, 5 января 2010 г.
Привязка к данным в своих UC
Всех с Новым 2010 годом :)
В декабре уже ушедшего 2009 года было много студентов, работы, опять же пожготовка к новому году, поэтому даже на 1 публикацию вемени не было :( А вот сейчас много выходных, сессия и все такой, поэтому буду наверстывать.
Сегодня я хотел бы поговорить о биндинге внешних данных к нашим UserControl (или CustomControl, кому как больше нравится).
В декабре уже ушедшего 2009 года было много студентов, работы, опять же пожготовка к новому году, поэтому даже на 1 публикацию вемени не было :( А вот сейчас много выходных, сессия и все такой, поэтому буду наверстывать.
Сегодня я хотел бы поговорить о биндинге внешних данных к нашим UserControl (или CustomControl, кому как больше нравится).
Подписаться на:
Сообщения (Atom)