yeah use ComPtr.Handle, but maybe we should add an implicit cast to bool 🤔
yeah use ComPtr.Handle, but maybe we should add an implicit cast to bool 
true and false operators. Overload these operators to treat your type as a Boolean value
(thing && !thing) == trueNullPtr type that can be used to check all this. basically i want 3.0 (in my head, this isn't official yet) to be super seamless to interact with from C# but there's just some things we can't do in the language, so silk.net.core would contain a mini DSL that makes working with unsafe betterglobal using static Silk.NET.Core.DSL.SilkDSL; possible
Ref<T> helper lolref that acted as a pointervar x = (int*)1;
Ptr<int> y = (int*)2;
var z = new ComPtr<IUnknown>((IUnknown*)3);
Console.WriteLine(x == nullptr);
Console.WriteLine(y == nullptr);
Console.WriteLine(z == nullptr);