Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сделать функию типом? (С#)

31K
19 сентября 2007 года
DarkSanches
2 / / 19.09.2007
есть такая вещь на Делфи:
type TPXMessageProc = procedure(dwMsg:LongWord; dwSite:LongWord; strKey:ShortString); stdcall;

необходимо тоже самое, но только на C#... с делегатами нифига не получается
276
19 сентября 2007 года
Rebbit
1.1K / / 01.08.2005
Мой ответ не компетентен, сам я с .НЕТом почти не роботал, но с того что читал в книгах - делегати ввели для того чтоб обезопасить вызов таких функций и скорее всего без делегатов тебе не обойтись.
257
19 сентября 2007 года
kosfiz
1.6K / / 18.09.2005
вроде бы для твоего случая так, хотя с дотнетом пока плохова-то:
 
Код:
public delegate void TPXMessageProc(параметры);
................................
public void Example(параметры)
{
      //
}
//использовать так:
TPXMessageProc newproc = new TPXMessageProc(Example);
//а потом
newproc(параметры);
309
19 сентября 2007 года
el scorpio
1.1K / / 19.09.2006
Не знаю, как в C#, но в С++ есть такая штука, как указатель на функцию. Объявление соответствующего типа данных пишется так:
typedef РЕЗУЛЬТАТ ТИП_ВЫЗОВА (*ИМЯ_ТИПА) (СПИСОК_ПАРАМЕТРОВ);
Пример:
typedef int __fastcall (*TnCompare_Voids) (const void *pItem1, const void *pItem2);
5
22 сентября 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: kosfiz
вроде бы для твоего случая так, хотя с дотнетом пока плохова-то:
 
Код:
public delegate void TPXMessageProc(параметры);
................................
public void Example(параметры)
{
      //
}
//использовать так:
TPXMessageProc newproc = new TPXMessageProc(Example);
//а потом
newproc(параметры);



инициализировать можно и по короче:

 
Код:
TPXMessageProc newproc = Example;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог