12 ms·
C# calls the first one "nullable reference types." When that build option is enabled, all types are non-nullable by default, and you can make them optionally nu
by seabrookmx 3y ago
C# calls the first one "nullable reference types." When that build option is enabled, all types are non-nullable by default, and you can make them optionally nullable by declaring them like "MyClass? cls = null;"
The compiler will ensure you check for null before de-referencing a nullable type.
- tazjin 3y agoHow does this interact with third-party dependencies you use? In my experience, most gradual typing things break down at that boundary.
- seabrookmx 3y agoThis isn't gradual typing? If libraries are not compiled with the compiler option, then all their reference types will be deemed nullable and I need to check for null before dereferencing. I can't do something like "GetItem().Name" if "GetItem()" returns a reference type like I could in Java, GoLang, JS, etc. If that library did use the flag and was provably non-nullable, then I could.