What's the best way to... [C#]

What’s the best way to make a timer or just a delay in C#

The quickest I can think of is to use Invoke (if you don’t need parameters in your callback) or a coroutine with WaitForSeconds in its yield. If for any reason you cannot use neither, then you can use System.Timers.Timer

I advice against recommending System.Timers.Timer to beginners/intermediates because:

a) The alternatives are simpler.
b) It can introduce multithreading.

I definitely agree, but sometimes you may want a timer inside a non-monobehavior so you cannot use coroutines/invoke. Personally I try to handle it in coroutines.