2010-07-09 5 views
0

저는 VB.net을 처음 접했고 이상한 상황에 처했습니다. 나는 다른 구조를 포함하는 구조를 가지고있다. 내부 구조는 null입니다. 이제 내가하는 일은 다음과 같습니다. 내부 구조의 새 인스턴스를 만들고 멤버 변수를 설정하고 전체 구조를 부모의 내부 구조에 할당합니다. 그러나 그것은 오류를주고있다. 과제가 성공적이지 못합니다. 조사 기간의 구조를 들여다 보면 HasValueValue 속성에 대해 "property evaluation failed"이라고 표시됩니다.vb.net에서 nullable 형식의 개체를 할당하는 중 오류가 발생했습니다.

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) 

누군가 나를 안내 할 수 있습니까?

답변

3

첫 번째 라인은 다음과 같습니다 하단에 다음

Dim testData As List(Of TestData) = Nothing 

당신이 어디 사이에 어디 내가 볼 수없는

testData.Add(testData_List1) 

을 뭔가 같은 :

testData = New List(Of TestData)() 

비록 당신이 TestData를 변수와 타입 둘 다 가지고 있기 때문에 읽기가 약간 힘들지만 (또는 그 n의 일부분 ame) 그래서 나는 그것을 놓칠지도 모른다.

+0

이 관찰만으로 그가 게시 한 코드가 완전하지 않다는 것을 알 수 있습니다. @ Kangkan : 완벽한 코드 예제를 포함하지 않을 때 문제를 해결하는 것은 매우 어렵습니다. –

+0

불완전한 코드를 게시하는 것에 대해 죄송합니다. 나는 다음 번에주의를 기울일 것이다. – Kangkan

+0

이제 문제를 해결했지만 Nullable 속성은 아직 설정되지 않았습니다. 누군가 그것을 조사 할 수 있습니까? – Kangkan

관련 문제