В C # вы можете получить возвращаемое значение в вашей функции события. Однако вы получите только возвращаемое значение последнего события. Кроме того, похоже, нет способа получить возвращаемое значение предыдущего события.
Какие хорошие практики? Должен ли я всегда использовать void
? Из моего ограниченного опыта, если я хочу объединить значения, я должен использовать ref
?
Как я могу написать событие? Я хотел использовать Func , но ref
там недопустимо, и я полагаю, что действие аналогично. (Я закончил с ниже). Есть ли способ сделать событие одной строкой вместо двух при использовании ref
?
delegate int FuncType(ref int a);
static event FuncType evt;
static void Main(string[] args)
{
evt += foo;
var aa = 1;
var a = evt(ref aa);
evt += bar;
var bb = 1;
var b = evt(ref bb);
}
static int foo(ref int a)
{
a = a*3;
return a;
}
static int bar(ref int a)
{
a=a +1;
return a;
}