| Managed class reference | Explicit owner: value, unique/shared pointer, or borrowed reference | No GC or universal object identity |
| Property | Named getter/setter or the project’s property helper where established | A helper is compile-time C++; it creates no runtime metadata |
Action/Func/Predicate | Typed callable, principally std::function-shaped | Captures have ordinary C++ lifetime |
| Event | Typed callback collection plus explicit subscription protocol | Publisher/subscriber lifetime is not managed |
| Exception | Specific Sharp Runtime exception when the contract exists | C++ RAII runs during unwinding; no CLR stack services |
| List/Dictionary | Select Collections.Core and decide value/identity ownership | Mutation, iterator and comparer rules must be verified |
async/await | Explicit Task/continuation/cancellation flow—or idiomatic native concurrency | No C# language syntax or ambient synchronization context |
| Reflection | Explicit registry, templates, variants or typed factories | Type is basic RTTI, not a metadata universe |
Activator.CreateInstance<T> | Compile-time templated activation where supported | No general Type-driven construction |
IDisposable | RAII plus compatibility-shaped Dispose where needed | Destructors remain the safety net |
| P/Invoke / COM | Write an explicit native boundary outside the compatibility facade | No CLR marshaller or DLL-binding service |