【问题标题】:Determine if type reference is nullable/non-nullable确定类型引用是否可以为空/不可为空
【发布时间】:2018-07-22 19:28:53
【问题描述】:

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

【问题讨论】:

标签: c# c#-8.0 nullable-reference-types


【解决方案1】:

在运行时,您应该能够通过检查自定义属性来检查。这就是当前原型捕获此信息的方式。但我想在它发布之前,有些东西仍然可以改变。 在 yaakov 提供的官方 C# 语言设计库中查看this 问题的答案。

【讨论】:

    【解决方案2】:

    我不认为你可以。

    按照我的阅读方式,这完全是编译时的事情。

    即refclass= 不可为空,引用类? = nullable 并且编译器确保在编译时检查它。

    运行时“无关紧要”——类不会改变。我可以通过空检查将可空转换为不可空,编译器会很高兴。

    【讨论】:

    • 他们甚至没有放置自定义属性吗?编辑:如果一个程序集使用由早期编译创建的 DLL,他们是否不希望有一种方法来“表示”参数类型不可为空?
    猜你喜欢
    • 2010-10-10
    • 2019-12-03
    • 2022-09-27
    • 2020-04-19
    • 1970-01-01
    • 2011-12-04
    • 2010-10-21
    相关资源
    最近更新 更多