null 非許容の質問と回答の多くを読みました。C# (4.0) で null 非許容型に近づける最良の方法は、Jon Skeet のNonNullable<>ハックのようです。
ただし、C++/CLI はマネージド参照をサポートすることで問題の多くを解決したようです: Foo%
(ネイティブ C++ の代わりにFoo&
)。コンパイラはmodreq(IsImplicitlyDereferenced)
、引数に追加することでこれを機能させます。このような関数を C# から呼び出そうとすると、次のようになります。
'<FunctionName>' is not supported by the language
NonNullable<>よりも優れたものはありますか?
Foo::Method(Bar%)
C# から C ++/CLI メソッドを呼び出す方法はありますか?
[編集]現在のところ、 NonNullable<>より優れたものはないようです ...少なくとも部分的な解決策がすでにあるので、C++/CLI に関するコメントがあればよかったのにと思います。