21. Platform Interoperability and Unsafe Code

C# has great capabilities especially when you consider that the underlying framework is entirely managed. Sometimes, however, you do need to escape out of all the safety that C# provides and step back into the world of memory addresses and pointers. C# supports this action in two significant ways. The first option is to go through Platform Invoke (P/Invoke) and calls into APIs exposed by unmanaged dynamic link libraries (DLLs). The second way is through unsafe code, which enables access to memory pointers and addresses.

A figure shows the "Platform Interoperability and Unsafe Code" mind-map.

Get Essential C# 7.0, Sixth Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.