I'm*_*ats 3 vb.net if-statement data-structures
我有两个结构,有时一个结构填充用户的数据或有时两者.我需要检查整个结构,看它是否有数据输入.如果我甚至可以检查一个变量以查看它是否为空或为空(我在下面所做的),我也会好的.当代码运行时,无论结构是否有数据,都始终禁用btnTurn.Enabled.这可能是我的布尔值的问题吗?
结构
Public Structure StructSurvData
Friend szTBMNum As String
Friend dblTBMElev1 As Double
Friend dblTBMElev2 As Double
Friend dblTBMElev3 As Double
Friend dblBACKSIGHT1 As Double
Friend dblBACKSIGHT2 As Double
Friend dblBACKSIGHT3 As Double
Friend dblFORESIGHT1 As Double
Friend dblFORESIGHT2 As Double
Friend dblFORESIGHT3 As Double
Friend szNewMPEDescr As String
Friend szDataComm As String
End Structure
Public Structure StructSurvData2
Friend szTBMNum2 As String
Friend dblTBMElev4 As Double
Friend dblTBMElev5 As Double
Friend dblTBMElev6 As Double
Friend dblBACKSIGHT4 As Double
Friend dblBACKSIGHT5 As Double
Friend dblBACKSIGHT6 As Double
Friend dblFORESIGHT4 As Double
Friend dblFORESIGHT5 As Double
Friend dblFORESIGHT6 As Double
Friend szNewMPEDescr2 As String
Friend szDataComm2 As String
End Structure
Run Code Online (Sandbox Code Playgroud)
如果别的
If structSD2.szTBMNum2 = Nothing Then
btnTurn.Enabled = False
ElseIf structSD2.szTBMNum2 <> Nothing Then
btnTurn.Enabled = True
End If
Run Code Online (Sandbox Code Playgroud)
你应该总是使用is nothing
替代=nothing
和isnot nothing
取代<> nothing
If structSD2.szTBMNum2 is Nothing Then
btnTurn.Enabled = False
ElseIf structSD2.szTBMNum2 isnot Nothing Then
btnTurn.Enabled = True
End If
Run Code Online (Sandbox Code Playgroud)
甚至更好,因为@zaggler建议:
btnTurn.Enabled = structSD2.szTBMNum2 Is Nothing
Run Code Online (Sandbox Code Playgroud)