powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передать параметр вместе с object sender, EventArgs e
8 сообщений из 8, страница 1 из 1
Передать параметр вместе с object sender, EventArgs e
    #37726077
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

У меня есть класс Class.cs. В нём я произвожу различные вычисления.
В одном из методом этого класса я вызываю другой метод:


Код: c#
1.
2.
3.
4.
5.
.
.
.
int a = 5;
MacroResolver.OnResolveCustomMacro += MacroResolver_OnResolveCustomMacro;



(это из кентики)

Код: c#
1.
2.
3.
4.
5.
6.
private void MacroResolver_OnResolveCustomMacro(object sender, MacroEventArgs e)
{
.
.
.
}



скажите, могу ли я каким-то образом передать параметр а =5 в MacroResolver_OnResolveCustomMacro?
public int a использовать не могу, т.к. если класс будет одновременно несколько пользователей использовать, то значние сотрётся.
...
Рейтинг: 0 / 0
Передать параметр вместе с object sender, EventArgs e
    #37726233
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подходящий ник :)

У тебя точно ASP.NET, а не WPF? а то может веткой форума ошибся..

А по существу - передавай в аргументах, что мешает? Для того EventArgs и придумали
можешь написать что-то вроде:
int a = 5;
MacroResolver.OnResolveCustomMacro += (o, e) => { e.a = a; MacroResolver_OnResolveCustomMacro(o, e); };

но это неправильно, давай весь код
...
Рейтинг: 0 / 0
Передать параметр вместе с object sender, EventArgs e
    #37727067
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс MacroResolver и метод OnResolveCustomMacro - закрытые в CMS, я не могу их код прислать.

Вот код, который я написал:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
        protected override string GetInvoiceInternal(int orderId)
        {
            int currency = 0;
            int currency_ID = 0;
            OrderInfo oi = OrderInfoProvider.GetOrderInfo(orderId);
            if (oi != null)
                currency = oi.OrderCurrencyID;
            if (currency != 0)
            {
                CurrencyInfo ci = CurrencyInfoProvider.GetCurrencyInfo(currency);
                if (ci != null)
                    currency_ID = ci.CurrencyID;
            }
            
            MacroResolver.OnResolveCustomMacro += MacroResolver_OnResolveCustomMacro;
            MacroResolver.OnResolveCustomMacro += (o, e) => { e.currency_ID = currency_ID; MacroResolver_OnResolveCustomMacro(o, e); };
            return oi.OrderInvoice;
        }
        
        private void MacroResolver_OnResolveCustomMacro(object sender, MacroEventArgs e)
        {
            switch (e.Expression)
            {
                case "currency.currencyID":
                    e.Match = true;
                    e.Result = currency_ID;
                    break;
            }
        }



В моем случае будет писать ошибку на e.currency_ID, т.к. у e нету свойства currency_ID
...
Рейтинг: 0 / 0
Передать параметр вместе с object sender, EventArgs e
    #37727091
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
...
Рейтинг: 0 / 0
Передать параметр вместе с object sender, EventArgs e
    #37727096
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Students, блин, даже разбираться не хочется, т.к. мне кажется ты что-то в принципе не правильно делаешь :)
А по существу - полиморфизм никто не отменял - делай наследника от MacroEventArgs, добавляй ему какие угодно свойства и передавай уже его, что может быть проще?
и кстати, убери нахер строку MacroResolver.OnResolveCustomMacro += MacroResolver_OnResolveCustomMacro;, если ты этот обработчик определеяешь иным путем ниже и вызывая тот же обработчик
...
Рейтинг: 0 / 0
Передать параметр вместе с object sender, EventArgs e
    #37727106
.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
.
Гость
а че за CMS ?

(гуглом пользоваться не умею хронически)
...
Рейтинг: 0 / 0
Передать параметр вместе с object sender, EventArgs e
    #37727127
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При работе с событиями замыкания могут сыграть очень злую шутку, кстати говоря, так что это уже зло :)
...
Рейтинг: 0 / 0
Передать параметр вместе с object sender, EventArgs e
    #37727209
Students
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.а че за CMS ?

(гуглом пользоваться не умею хронически)

Kentico
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передать параметр вместе с object sender, EventArgs e
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]