Native Interop with
The notion of references in managed code is morally equivalent to pointers, as known from native code programming. There are a whole series of differences, though, which have to do with type safety, the presence of a garbage collector, and the desire to build a platform-independent runtime. The implications brought to us by type safety and the use of a GC are closely related, as can be seen from the way the collector traces objects by following references, requiring access to type information. But there’s more, the fact objects can move in memory means that the object address captured in a reference can and will change during the program’s lifetime.
Our previous discussion should be enough to understand already that ...