@Darknight
I give you a really friendly advice. If you want to develop games, forget about c#, python, java, javascript and other slow-mo creatures. You will spend time (and very often money) on learning them only to discover that they are inferior to C++ on virtually every level.
I once wished to learn C# as I am always trying to learn something new. I knew C++ already. After couple of weaks trying and giving it a really genuine GO, I simply discovered that this is nothing special, this is simply java from microsoft, with its own set of faults and incapabilities. Waste of my time (and money).
Believe me, take your time in learing C++, move yourself to next level. Master it. You will never look back. C# will look to you like a toy. And like a toy, toy products only can be build with it.
Best example, look what happened to Visual Studio. It was beautiful software, unmatched in its own field, I simply loved it and never thought that I will use other IDE than it. Since they rewrote VS in C#, look what happened. VS is practically unusable for any sizable project. People are turning their backs and looking for alternatives. Why is it that engineers from Microsoft cannot make that product responsive? Is it that they are bad engineers? I don’t think so, as far as I know they are the best engineers from all over world. So the problem must be somewhere else. And the problem is C#. It simply isn’t capable of producing well performing software.
Learn C++, you will never look back.
And forget about making bindings between C# and C++. It is simply waste of your effort and time. You have better and more important things to do.
As for people who claim that C# allows them to write more elegant code than C++? The only reason for it that they are simply not skilled enough as C++ programmers and they just don’t know how to do it. C++ provides exactly the same level of abstraction as C# does, so if you know C++ you can write very elegant code. Not mentioning that the code will outperform C# code by range of 200% to 1000%.