Module Module1
Function Calculate(ByVal num1 As Double?, ByVal num2 As Double?) As Double?
If num1 Is Nothing OrElse num2 Is Nothing Then
Return Nothing
Else
Return num1.Value * num2.Value
End If
End Function
Sub Main()
'测试传入不同的可空值
Dim result1 As Double? = Calculate(5.5, 3.2)
Dim result2 As Double? = Calculate(Nothing, 3.2)
Dim result3 As Double? = Calculate(5.5, Nothing)
Dim result4 As Double? = Calculate(Nothing, Nothing)
'处理返回的可空结果,确保程序不会因空值而引发异常
If result1.HasValue Then
Console.WriteLine("结果1: " & result1.Value)
Else
Console.WriteLine("结果1为Nothing")
End If
If result2.HasValue Then
Console.WriteLine("结果2: " & result2.Value)
Else
Console.WriteLine("结果2为Nothing")
End If
If result3.HasValue Then
Console.WriteLine("结果3: " & result3.Value)
Else
Console.WriteLine("结果3为Nothing")
End If
If result4.HasValue Then
Console.WriteLine("结果4: " & result4.Value)
Else
Console.WriteLine("结果4为Nothing")
End If
Console.ReadLine()
End Sub
End Module