c, which you already did is closer to c++ than c#. Unreal c++ has garbage collection, like c#, and the engine functions and macros are defined in c++. I believe this project with xamarin was cancelled, but i can tell you c# is a full object oriented language, has better support for generics, exception handling, delegates(function pointers in c++, but unreal also has built in delegates in c++), and reflections system. But you can try unreal c++ has a well developed framework to interact with the engine, many with simmilarities of the c# language. Im no expert tough, just learning, so maybe someone can give a better explanation than me.