metaclass: (Default)
[personal profile] metaclass
Кусок проги на C#

//фактически, мы делаем следующее: из конструктора/инициализатора с N параметрами мы
//делаем его же(хотя формально это уже не конструктор, а просто функция), но с нулем
//параметров, методом замыкания N параметров конструктора на локальные переменные
//в анонимном делегате.
public delegate T UIStateConstructor<T>() where T:UIStateBase;
public delegate T UIResourceConstructor<T>() where T:class;

Жаль, фреймворк не 3.5, там подобные штуки делать проще стало, менее многословно.

Date: 2009-10-12 09:31 am (UTC)
From: [identity profile] metaclass.livejournal.com
А что такое "switch с признаком типа" и "двойная передача"? :)

Date: 2009-10-12 09:44 am (UTC)
From: [identity profile] tonal.myopenid.com (from livejournal.com)
Двойная передача (Double dispatch): http://en.wikipedia.org/wiki/Double_dispatch.

switch с признаком типа - это когда каженному типу в иерархии присваивается номерочек, и тогда в любом месте, где приходит ссылка на экземпляр базового класса мы этот номерочик проверяем и кастимся к нужному типу...
Короче такой рукопашный визитер (Visitor): http://en.wikipedia.org/wiki/Visitor_pattern

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2025 07:31 pm
Powered by Dreamwidth Studios