コードを変換する必要がない場合があります。
C++ コンパイラ ツールの一部である link.exe は、C++ コードと C# コードの両方を同じアセンブリに含めることができます。C++ ビットには、マネージ コードとアンマネージ コードを混在させることができます。最初に、C# コンパイラ (csc.exe) のコマンド ライン スイッチを使用して C# コードを .netmodule にコンパイルする必要があります。次に、link.exe を使用して、C++ コードでアセンブリにコンパイルできます。混合言語アセンブリを作成してからしばらく経ちます。詳細が 100% でない場合は申し訳ありませんが、上記の用語を検索すると、それを行う方法が見つかります。
重要な部分は、C++ コンパイラが他のコンパイラよりも高度であるため、C#/VB ネットモジュールを使用できるが、その逆ではないことを覚えていることです。別のアセンブリを参照するのではなく、単一のアセンブリにコンパイルすることの利点は、単一のアセンブリの各部分内の型が相互参照できることです。2 つの別個のアセンブリ間で参照を持つことにより、型認識の関係は階層的でなければなりません。
C# にはunsafeキーワードもあります。これにより、C++ スタイルのポインターを C# コード ファイルのセクション内で使用できるようになり、配列の境界チェックがオフになります。これには欠点があり、使用シナリオによっては問題になる場合と問題にならない場合があります。
個人的には、C++ で利用可能なポインターを使用して最適化した後、計算集約型のコードを実行すると、C# と比較して C++ コンパイラーの方が 20 倍高速であることがわかりました。