It is not clear why you are using ref here, but if myTimer_Tick has the correct signature, you do not need to change your method at all - you can simply use:
newTimer(1000, myTimer_Tick);
Instead, the method group transformation is used, rather than an explicit expression about creating a delegate. He does the same thing though.
If you want to use the parameterless void methods, you can write a helper method to accept an Action and wrap it in an ElapsedEventHandler using a lambda expression:
Timer StartTimer(int interval, Action action) { ... timer.Elapsed = (sender, args) => action(); ... }
source share