Csharp/C#教程:今天如何在C#中接近不可为空的引用类型?分享


今天如何在C#中接近不可为空的引用类型?

我读过很多不可空的问题和答案。 看起来在C#(4.0)中接近不可空类型的最佳方法是Jon Skeet的NonNullable hack。

但是,似乎C ++ / CLI通过支持托管引用解决了大部分问题: Foo% (而不是本机C ++ Foo& )。 编译器通过向参数添加modreq(IsImplicitlyDereferenced)来完成此工作。 试图从C#调用这样的函数会导致:

 '' is not supported by the language 

有没有比NonNullable 更好的东西?

有没有办法(合理地 – 即,没有使用reflectionFoo::Method(Bar%)从C#调用C ++ / CLI方法Foo::Method(Bar%)


[编辑]似乎目前没有什么比NonNullable 更好…我希望我会对C ++ / CLI的东西有一些评论,因为它已经至少有一个部分解决方案。

我已经碰到了几次……我还没有找到比Skeet解决方案更好的东西。 它解决了我遇到的所有情况,所以我必须投票。

我同意这是一个hacky的情况,我们不得不诉诸…但他的修复确实解决了问题。

是的,规范#: http : //research.microsoft.com/en-us/projects/specsharp/

– 编辑:我刚注意到你说过C#4.0; 我很相信Spec#不支持该版本。 不过,值得回顾一下。

您也可以(我认为)稍后检查,然后通过Gendarme中的规则进行编译: http : //www.mono-project.com/Gendarme (假设运行4.0)

上述就是C#学习教程:今天如何在C#中接近不可为空的引用类型?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/992284.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐