确定类型引用是否可为空/不可为空

时间:2018-07-22 19:28:54

标签: c# reflection c#-8.0

使用即将到来的C#8可为空的引用类型功能,如何在运行时判断字段/方法/属性等的类型签名是可为空还是不可为空的引用类型?

2 个答案:

答案 0 :(得分:1)

在运行时,您应该能够通过检查自定义属性来进行检查。当前的原型就是这样捕获这些信息的。但是我想,直到它发布,有些事情还是会改变的。 看看yaakov提供的官方C#语言设计存储库中的this问题答案。

答案 1 :(得分:0)

我认为你不能。

我的阅读方式完全是编译时的事情。

即refclass =不能为空,refclass? = nullable,编译器确保在编译时对此进行检查。

运行时“不关心”-类不变。我可以通过null检查将nullable转换为non nullable,编译器会很高兴。