понедельник, 11 января 2010 г.

Делегаты и события

На лекциях я обычно привожу пример с методом получающим массив и обрабатывающим его элементы при помощи делегата, являющегося вторым параметром данного метода.

Сегодня я покажу "обратный" пример иллюстрирующий позднее связывание. В одной из своих статей Джоэль Спольски рассматривал интересный пример делегатов. Мне он понравился и мы посмотрим его более расширенную версию.

среда, 6 января 2010 г.

Полиморфизм

Начнем как водится с начала. Дадим определение понятия полиморфизм:
1. Полиморфизм (от греч. πολύ — «много» и μορφή — «форма», многообразный) в программировании — это возможность использования в одном и том же контексте различных программных сущностей (объектов, типов данных и т. д.) с одинаковым интерфейсом. (Журнал Функциональное программирование).
2. Полиморфи́зм — взаимозаменяемость объектов с одинаковым интерфейсом (Википедия).
3. Полиморфизм — это механизм позволяющий вызывать методы классов объектов, а не классов объектных переменных, ссылающихся на эти объекты (ваш покорный слуга).

Позднее связывание

Наверно из всех тем связанных с ООП тема позднего связывания является одной из самых тяжелых для понимания. В связи с этим, я хотел бы рассмотреть три механизма позднего связывания более предметно. Рассматривать я их буду в следующем порядке:
1. Полиморфизм
2. Делегаты / события
3. Reflection (отражение)

Начну с того, что я буду вкладывать в понятие "позднее связывание".
Позднее связывание это механизм позволяющий отложить принятие решения о том, какой код будет выполняться в данном месте программы на время более позднее, чем написание именно этого фрагмента кода. Когда будет приниматься решение? Да когда угодно! Когда другой программист использует ваш код в своем коде, или когда выполняется программа содержащая ваш код. Т.е. решение принимается гарантированно после того, как вы нажали Ctrl+Shift+B.

вторник, 5 января 2010 г.

Привязка к данным в своих UC

Всех с Новым 2010 годом :)
В декабре уже ушедшего 2009 года было много студентов, работы, опять же пожготовка к новому году, поэтому даже на 1 публикацию вемени не было :( А вот сейчас много выходных, сессия и все такой, поэтому буду наверстывать.

Сегодня я хотел бы поговорить о биндинге внешних данных к нашим UserControl (или CustomControl, кому как больше нравится).