使用 VB Option Strict On,为什么 aNullable(Of T)不需要显式转换为 T 的接口,而它确实需要一个 to T?
IE
Dim x As Integer? = 5
Dim y As Integer
Dim z As IComparable
y = x ' Fails to compile with error
' "Option Strict On disallows implicit conversions from 'Integer?' to 'Integer'."
z = x ' Succeeds
编辑:正如@SSS 所显示的(有点),部分答案是Nullable值是可以为空的,并且可以是Nothing,这对于像接口这样的引用来说很好。所以这个转换总是成功的,不像转换成Tcase (当Nullable没有值时失败),所以它可以被看作是一个隐式转换。
我的问题现在变成了“如何?”。如何从Nullable(Of T)(没有自己的接口)转换为T理论上协商的接口?
我知道实现是box Nullable<T>,它有效地剥离了Nullable包装器,但我在这里确认了这个概念......
(所以我会查看文档,看看他们是否解释了这一点。)