That's a nice question. Except for writing time-critical blocks of code, prefer C#. Write all your algorithmic code in C++ (not
VC++ .NET), compile it into a dll and call that using a Dll Interop
through C#. This should balance the performance. This technique is not
new or not invented by me or anyone. It's similar the old age C
programming vs Assembly, where people on one camp fight assembly
programming is faster and the other camp stating C is easier to develop
and then people started using assembly embedded within a C program for
time-critical applications using an asm block.