Unless you have a very, very, very good reason to do this, this will create more headaches than you understand. Any language with a garbage collector or "type safety", you will need to correctly translate to and from "safe" types (C#) and "unsafe" types (C/C++). This adds unnecessary overhead.