如何解决如何检查.net 5源生成器中是否可以为空的引用类型
我正在制作一个基于.Net 5 Source Generator的json库。
如果我知道json字符串属性不能为空,则可以通过跳过对json字符串属性的空检查来优化字符串处理。
启用可空引用类型后,我可以假设字符串(不带?)不为空。但是,如果关闭了“可空引用”类型,那么我将不能。
如何从.Net 5源生成器中确定是否启用了可空引用类型。
解决方法
由于#nullable
伪指令,有可能在不同的地方打开或关闭它。您应该做的是查看ITypeSymbol,以查看所要查找的任何符号,因为它将具有一个this enum属性NullableAnnotation
。在这种情况下,“ None”表示“该类型的功能尚未启用”,而Annotated / NotAnnotated表示该功能已启用,这是适当的状态。因此,在您的情况下,如果ITypeSymbol.NullableAnnotation为“ NotAnnotated”,则表示它是非空类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。