VB.NET - 想要将两种可空类型相加 - 如何?(即var1 + var2,两者都可以为空,vari1 = Nothing,Var2 = 5导致Nothing)

Max*_*xer 2 vb.net nullable addition

我有:

Dim nVar1 As Long?

Dim nVar2 As Long?

Dim nVarSum As Long?

nVar1 = Nothing

nVar2 = 5

nVarSum = nVar1 + nVar2
Run Code Online (Sandbox Code Playgroud)

我希望结果以nVarSum为5结束,而不是Nothing.

我知道如果你添加一些未知值的东西,你最终会得到"somthing + unknown"或者x + 5总是等于"x + 5"而不是"5",因为你仍然带着那个未知的"x".

但是,在这种情况下,如何才能有效地将未知或Nothing视为零?

谢谢!

(基本上发生的是最终用户向我们发送数据文件,此代码解析该文件,然后将大约15个字段汇总在一起.如果用户将这些字段留空而不是为它们分配零,我需要对待它好像它对于这一个加法操作是零,但所有其余代码需要继续将其视为Nothing值,因为用户实际上没有提交零...他们提交空白或没有)

Mar*_*ell 5

nVar1.GetValueOrDefault()+ nVar2.GetValueOrDefault()
Run Code Online (Sandbox Code Playgroud)

或者在c#中:

(nVar1??0)+(nVar2??0)
Run Code Online (Sandbox Code Playgroud)