После перезаписи функции вызова события для обработки событий и их аргументов в общем, я начал перебирать свой код (чтобы соответствовать изменению), и я заметил, что компилятор неявно сделал общий вызов.Функция компилятора C# или я теряю сознание?
Вот моя функция:
private void InvokeEvent<TArgs>(EventHandler<TArgs> invokedevent, TArgs args)
where TArgs : EventArgs
{
EventHandler<TArgs> temp = invokedevent;
if (temp != null)
{
temp(this, args);
}
}
и вот линия для вызова функции:
InvokeEvent(AfterInteraction, result);
компилируется без проблем, и IntelliSense даже отображать «правильный» вызов (с часть).
Является ли это функцией компилятора (общий тип может быть непосредственно выведен из второго аргумента), или я схожу с ума по всему и не теряю точку?
Да что компилятор довольно умный ... –