I've read many of the non-nullable questions and answers. It looks like the best way to get close to non-nullable types in C# (4.0) is Jon Skeet's NonNullable<> hack.
However, it seems that C++/CLI has solved much of the problem by supporting managed references: Foo%
(instead of native C++ Foo&
). The compiler makes this work by adding modreq(IsImplicitlyDereferenced)
to the argument. Trying to call such a function from C# results in:
'<FunctionName>' is not supported by the language
Is there anything better then NonNullable<>?
Is there any way to (reasonably--i.e., w/o using reflection) call a C++/CLI method Foo::Method(Bar%)
from C#?
[edit] It seems there is currently nothing better than NonNullable<>...I wish I would have gotten some comments on the C++/CLI stuff as it already has at least a partial solution.