代码之家  ›  专栏  ›  技术社区  ›  Kangkan

在vb.net中分配可为null类型的对象时出错

  •  0
  • Kangkan  · 技术社区  · 15 年前

    property evaluation failed “为了 HasValue Value 属性。

     Dim testData As List(Of TestData) = Nothing
    
      Dim testData_List1 As New TestData
            With testData_List1.commonTestParam
                .AccuchekActiveEnergy = 2.56
                .AccuchekActiveEnergyUnit = ActiveEnergyUnit.KiloWattHour
                .AccuchekApparentEnergy = 34.56
                .AccuchekApparentEnergyUnit = ApparentEnergyUnit.VoltAmpereHour
                .AccuchekFrequency = 1
                .AccuchekRange = "20474 ewr 34324"
                .AccuchekType = AccuchekType.AccuchekOne
                .ActiveLoadRPhase = 145
                .AvgActiveLoad = 2.56
                .AvgActiveLoadUnit = ActiveLoadUnit.Watt
                .AvgPowerFactor = 0
                .AvgPowerFactorType = PowerFactorType.PFLag
                .ConditionalFlag1 = 0
                .ConsumerNo = "343122050242"
                .CurrentRPhase = 1
                .GeneralFlag1 = 0
                .InstantaneousPFRPhase = 2
                .ManufacturingYear = 2009
                .MeterActiveEnergy = 258.89
                .MeterActiveEnergyUnit = ActiveEnergyUnit.KiloWattHour
                .MeterActiveError = 20
                .MeterApparentError = 14
                .MeterConstant = 3200
                .MeterConstantUnit = MeterConstantUnit.RevsPerkVAh
                .MeterMake = "DS"
                .MeterSNo = "6563402"
                .MeterTypeAndClass = MeterTypeAndClass.MTCElectorMechWith20
                .MTFID = "123456789"
                .NoofTestRevolutions = 100
                .PulseCriteria = 0
                .RatedBasic = 25
                .RatedMax = 30
                .RatedVoltage = 15
                .ReactiveCurrentRPhase = 145
                .RemarkID = 0
                .TestDateAndTime = "100320101545"
                .TestDuration = 2145
                .TesterCode = 0
                .TestID = "147852"
                .TestMode = TestMode.TMOpticalScanner
                .TestNumber = 0
                .VoltageRPhase = 145
            End With
    
           Dim accuchek3TestParameters1 As New Accuchek3PhaseTestParameters
    
            With accuchek3TestParameters1
                .AccuchekReactiveLagEnergy = 2.46
                .AccuchekReactiveLagEnergyUnit = ReactiveEnergyUnit.KiloVoltAmpereReactiveHour
                .AccuchekReactiveLeadEnergy = 2.56
                .AccuchekReactiveLeadEnergyUnit = ReactiveEnergyUnit.KiloVoltAmpereReactiveHour
                .ActiveLoadBPhase = 14
                .ActiveLoadYPhase = 15
                .AvgApparentLoad = 10
                .AvgApparentLoadUnit = ApparentLoadUnit.KiloVoltAmpere
                .AvgReactiveLagLoad = 14
                .AvgReactiveLagLoadUnit = ReactiveLoadUnit.KiloVoltAmpereReactive
                .AvgReactiveLeadLoad = 15
                .AvgReactiveLeadLoadUnit = ReactiveLoadUnit.KiloVoltAmpereReactive
                .ConditionalFlag2 = 0
                .ConditionalFlag3 = 0
                .CTRatio = 1.23
                .CurrentBPhase = 10
                .CurrentYPhase = 11
                .InstantaneousPFBPhase = 0
                .InstantaneousPFYPhase = 1
                .MeterApparentEnergy = 1.01
                .MeterApparentUnit = ApparentEnergyUnit.KiloVoltAmpereHour
                .MeterReactiveLagEnergy = 1.25
                .MeterReactiveLagError = 1.25
                .MeterReactiveLagUnit = ReactiveEnergyUnit.KiloVoltAmpereReactiveHour
                .MeterReactiveLeadEnergy = 1.45
                .MeterReactiveLeadError = 1.56
                .MeterReactiveLeadUnit = ReactiveEnergyUnit.KiloVoltAmpereReactiveHour
                .PercentageLoad = 1
                .PTRatio = 1
                .ReactiveCurrentBPhase = 10
                .ReactiveCurrentYPhase = 11
                .VoltageBPhase = 10
                .VoltageYPhase = 10
            End With
    
            testData_List1.accuchek3TestParameters = accuchek3TestParameters1
    
            testData.Add(testData_List1)
    

    1 回复  |  直到 15 年前
        1
  •  3
  •   Hans Olsson    15 年前

    Dim testData As List(Of TestData) = Nothing
    

    那么在底部你会

    testData.Add(testData_List1)
    

    我看不到你在这两者之间的任何地方做过类似的事情:

    testData = New List(Of TestData)()
    

    虽然它有点难读,因为你有一个变量和类型都以TestData作为它们的名称(或名称的一部分),所以我可能只是错过了这一点。