Кажется, ничто не заставляет вас использовать Action<T>
, поэтому вы можете создать свой собственный тип делегата.Я не нашел способ сделать это в общем виде, но это работает:
unsafe delegate void PixelAction(Pixel* ptr);
Имейте в виду, что если это действительно критично к производительности, вызов делегата происходит медленнее, чем просто вызов методанепосредственно.Может быть, другой способ может быть лучше, например, дублирование кода (если это будет работать в вашем случае) или генерация кода, либо во время компиляции, либо во время выполнения с использованием Reflection.Emit или CodeDOM.