Unless you plan to do advanced macros, learning C# will not help you much. Most simple macros are specifically UCCNC macro languge calls and very little if any C# calls involved in teh process.
As you noted teh best way to learn it is by example code. But there is VERY little code available that explains teh process. And that is not unusual in teh DIY cnc industry. IF you think that programs like Mach3 are an exception you have to know that teh author of Mach3 "ART" did little to no documentation of mach3. It was mostly done by dedicated USERS of Mach3. The problem today is there are a lot of DIY control software packages available and very few dedicated USERS left devoting time to documenting things DIY CNC.
Most of todays users expect the Manfs of controls to provide them with what they need . They READ about all teh neat things that CNC machines can do but fail to realize that most DIY cncs are not high end controls that can do all teh cool things high end machines can do. Basically if you want teh cool thngs you have to learn to program inside of teh control and create the cool things yourself. Or find someone to do it for you.Otherwise you need to learn to USE what features your controller has to your advantage. Bascially change your process to use teh controllers features instead of relying on teh controller doing teh work for you.
Also it would be wise to learn how teh Gcode language works so YOU know what teh machine is going to do based on teh Gcode . Gcode is a VERY simple language. It is like talking to a 3 year old. The basic moves are extremely simple.
Just a thought, (;-) TP