I hope to return the value of the nothing
to the following vb.net function, but its Instead of 0
...
is returning a value of the public share function GetDefaultTipoSrvTkt () as an integer? GetDefaultTipoSrvTkt = (integer, DataRow) as the slow-tsrvDict New Dictionary if (IsNothing (tsrvDict) OrElse tsrvDict.Count = 0, nothing, tsrvDict.First.Key) expiration function
< P> The last line's function can also be written as a return (IsNothing (tsrvDict) OrElse tsrvDict.Count = 0, nothing, tsrvDict.First.Key)
but in any case , Why is ()
function if (IsNothing (tsrvDict) OrElse tsrvDict.Count = 0, nothing, tsrvDict.First.Key)
return 0 < / Code> rather than nothing
?
is nothing
to be applied as a value type in VB The context type, and in all cases, means "the default value of this type", for example:
dim x integer = nothing Console.WriteLine (x) For the '0
if ()
operator, VB has to detect the return type in some way, it sees both branches, and Their l A shows the nearest common type. In this case, there is a branch type integer
second nothing
, which is "typeless", but it is compatible with integer
As we saw earlier Therefore, the result of type integer
being predicted. When is nothing
given in that context, it becomes 0
A clear cast will correct:.
GetDefaultTipoSrvTkt = if (_IsNothing (TsrvDict) OrElse tsrvDict.Count = 0, _ CType (nothing, integer?), _ TsrvDict.First.Key)
Or you can use an alternative method to specify zero value for Nullable type:
GetDefaultTipoSrvTkt = if (_Is nothing (tsrvDict) OrElse tsrvDict.Count = 0, _ New Integer? (), _ TsrvDict.First.Key)
No comments:
Post a Comment