ili*_*ian 4 .net vb.net compiler-construction
我只是编写一些代码来比较整数的id和整数的id?例如:
Dim id As Integer = 1
Dim nullId As Integer? = Nothing
Dim areEqual As Boolean
areEqual = nullId = id
Run Code Online (Sandbox Code Playgroud)
当我尝试编译代码时,我收到编译器错误:
Option Strict On disallows implicit conversions from 'Boolean?' to 'Boolean'.
Run Code Online (Sandbox Code Playgroud)
虽然我很容易解决这个问题,但我希望有人能够解释编译器中发生的事情以发出此警告.
这是可空类型的怪癖之一.NULL(一般而言)表示"不知道".比较知名与不知名的结果未知(因为你不知道它们是相同的).
它与.NET中的可空类型相同.比较一个Integer?与Integer在结果Boolean?,因为你可能会得到True,False或"不知道".
| 归档时间: |
|
| 查看次数: |
2836 次 |
| 最近记录: |