Зачем нужен параметр object state в TimerCallback?
От: dims12 http://www.relativity.ru
Дата: 19.09.10 14:48
Оценка:
Зачем нужны параметры наподобие object state в TimerCallback?

Разве нельзя всегда положить в делегат delegate void func(void); нестатический метод какого-нибудь класса и получить доступ к его экземпляру?
Re: Зачем нужен параметр object state в TimerCallback?
От: Lloyd Россия  
Дата: 19.09.10 15:02
Оценка:
Здравствуйте, dims12, Вы писали:

D>Разве нельзя всегда положить в делегат delegate void func(void); нестатический метод какого-нибудь класса и получить доступ к его экземпляру?


Можно. А можно использовать state
Re[2]: Зачем нужен параметр object state в TimerCallback?
От: dims12 http://www.relativity.ru
Дата: 19.09.10 15:15
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Можно. А можно использовать state


state неудобен тем, что его ещё нужно приводить к нужному типу, чтобы обратиться к содержимому. Это его недостаток. А есть ли у него какие-то преимущества?
Re[3]: Зачем нужен параметр object state в TimerCallback?
От: Lloyd Россия  
Дата: 19.09.10 15:20
Оценка:
Здравствуйте, dims12, Вы писали:

L>>Можно. А можно использовать state


D>state неудобен тем, что его ещё нужно приводить к нужному типу, чтобы обратиться к содержимому. Это его недостаток. А есть ли у него какие-то преимущества?


Например, он лучше заточен на работу в студийном дизайнере — дизайнер по давлклику по свойству генерит метод текущей формы/контрола.
Re[4]: Зачем нужен параметр object state в TimerCallback?
От: dims12 http://www.relativity.ru
Дата: 19.09.10 15:24
Оценка:
Здравствуйте, Lloyd, Вы писали:

D>>state неудобен тем, что его ещё нужно приводить к нужному типу, чтобы обратиться к содержимому. Это его недостаток. А есть ли у него какие-то преимущества?


L>Например, он лучше заточен на работу в студийном дизайнере — дизайнер по давлклику по свойству генерит метод текущей формы/контрола.


Не понял. Это же опять пример, когда state не нужен?
Re[5]: Зачем нужен параметр object state в TimerCallback?
От: Lloyd Россия  
Дата: 19.09.10 15:29
Оценка:
Здравствуйте, dims12, Вы писали:

L>>Например, он лучше заточен на работу в студийном дизайнере — дизайнер по давлклику по свойству генерит метод текущей формы/контрола.


D>Не понял. Это же опять пример, когда state не нужен?


Сорри, я не о том таймере подумал. Приношу свои извенения.
Re: Зачем нужен параметр object state в TimerCallback?
От: Sinix  
Дата: 19.09.10 15:38
Оценка: +1
Здравствуйте, dims12, Вы писали:

D>Зачем нужны параметры наподобие object state в TimerCallback?


D>Разве нельзя всегда положить в делегат delegate void func(void); нестатический метод какого-нибудь класса и получить доступ к его экземпляру?


Это тёмное наследие 1го фреймворка: ни лямбд, ни генериков — крутись как хочешь.
Re: Зачем нужен параметр object state в TimerCallback?
От: Sinix  
Дата: 19.09.10 15:40
Оценка:
Пардон, ни анонимных методов, ни генериков. Чтоб не придрались
Re[2]: Зачем нужен параметр object state в TimerCallback?
От: Lloyd Россия  
Дата: 19.09.10 15:49
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Пардон, ни анонимных методов, ни генериков. Чтоб не придрались


Ты не совсем понял вопрос.
Re[3]: Зачем нужен параметр object state в TimerCallback?
От: Sinix  
Дата: 19.09.10 16:13
Оценка:
Здравствуйте, Lloyd, Вы писали:

S>>Пардон, ни анонимных методов, ни генериков. Чтоб не придрались

L>Ты не совсем понял вопрос.
Придрались

Зачем нужны параметры наподобие object state в TimerCallback?

Разве нельзя всегда положить в делегат delegate void func(void); нестатический метод какого-нибудь класса и получить доступ к его экземпляру?


Ответ в развёрнутой форме: в c# 1.0 не было синтаксического сахара. Поэтому пришлось бы писать тонны кода вида
class MyCallbackHandler
{
  public int value1;
  public void Process()
  {}
}
void Subscribe()
{
  MyCallbackHandler tmp = new MyCallbackHandler()
  tmp.value1 = 2;
  timer.Tick += new TimerCallback(tmp.Progress);
}

вместо
void Subscribe()
{
  timer.Tick += new TimerCallback(Progress);
}
void Process(object arg)
{
  int value1 = (int)arg;
}


Ответ принят?
Re[4]: Зачем нужен параметр object state в TimerCallback?
От: Lloyd Россия  
Дата: 19.09.10 16:17
Оценка: :)
Здравствуйте, Sinix, Вы писали:

L>>Ты не совсем понял вопрос.

S>Придрались

S>

S>Зачем нужны параметры наподобие object state в TimerCallback?

S>Разве нельзя всегда положить в делегат delegate void func(void); нестатический метод какого-нибудь класса и получить доступ к его экземпляру?


S>Ответ в развёрнутой форме: в c# 1.0 не было синтаксического сахара. Поэтому пришлось бы писать тонны кода вида


Продолжаю придираться: а зачем ты все это написал? Ведь топикстартер и так знает про это, раз написал про метод нестатического класса?
Re[5]: Зачем нужен параметр object state в TimerCallback?
От: Sinix  
Дата: 19.09.10 16:25
Оценка: :)
Здравствуйте, Lloyd, Вы писали:

L>Продолжаю придираться: а зачем ты все это написал? Ведь топикстартер и так знает про это, раз написал про метод нестатического класса?


?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.