Возможно ли создать оператор switch-case вокруг EventArgs?Корпус коммутатора типов EventArg
т.е. .:
void MyMethod(object sender, EventArgs e)
{
switch(e)
{
//MyEventArgs inherit from EventArgs
case e is MyEventArgs:
//Do some code...
break;
default:
break;
}
}
Прямо сейчас я не могу найти способ, чтобы поместить его в распределительном регистре, поэтому я использую if-то еще заявления, который будет медленнее, чем комму- когда я заполняю многие if-else в нем (поскольку в случае с коммутатором создается какая-то хэш-таблица футляра под капотом).
Вы действительно не заметите разницы в скорости. –
Является ли ваша цель выполнять код только тогда, когда пользовательский объект EventArgs будет передан вашему методу? Я имею в виду ... Есть ли какой-либо нестандартный объект EventArgs, который требует выполнения кода в этом случае? – HuorSwords
Сколько классов вы получили от 'EventArgs'? Кажется, что из предыдущих ответов консенсус заключается в том, что вам понадобится полдюжины отчетов о случаях, чтобы работать лучше, чем 'if', и даже тогда это незначительно, пока вы не будете иметь дело с очень большими цифрами. –