我只是编写一些代码来比较整数的id和整数的id?例如:
Dim id As Integer = 1 Dim nullId As Integer? = nothing Dim areEqual As Boolean areEqual = nullId = id
Option Strict On disallows implicit conversions from 'Boolean?' to 'Boolean'.
虽然我很容易解决这个问题,但我希望有人能够解释编译器中发生的事情以发出此警告.
解决方法
这是可空类型的怪癖之一. NULL(一般而言)表示“不知道”.比较已知和未知的未知结果(因为你不知道它们是否相同).
它与.NET中的可空类型相同.比较一个整数?使用Integer会导致布尔值?,因为您可能会得到True,False或“不知道”.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。