gpt4 book ai didi

.net - 为什么可空类型的行为方式如此

转载 作者:行者123 更新时间:2023-12-04 06:47:02 24 4
gpt4 key购买 nike

我在使用可空类型时遇到了问题,所以我编写了以下程序来演示我遇到的问题并且对结果感到困惑。这是程序:

Module Module1

Public Sub Main()
Dim i As Integer? = Nothing
Dim j As Integer? = GetNothing()
Dim k As Integer? = GetNothingString()

If i.HasValue Then
System.Console.WriteLine(String.Format("i has a value of {0}", i))
End If
If j.HasValue Then
System.Console.WriteLine(String.Format("j has a value of {0}", j))
End If
If k.HasValue Then
System.Console.WriteLine(String.Format("k has a value of {0}", k))
End If

System.Console.ReadKey()

End Sub

Public Function GetNothingString() As String
Return Nothing
End Function

Public Function GetNothing() As Object
Return Nothing
End Function

End Module

程序的输出是:
k 的值为 0

为什么只有 k 有值?

最佳答案

它与字符串到整数的隐式转换有关。

其他的直接设置为 Nothing 或将 Nothing 作为发送给它的对象,它没有隐式转换。然而,字符串确实如此。

在 Option Strict 开启的情况下再试一次。我打赌没有打印品。

关于.net - 为什么可空类型的行为方式如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3611783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com