0

以下のコードでは、InspectionKey に従って、1 つの変数 (bestInsp) をコレクション (Inspections) 内の最新の変数に等しく設定しようとしています。

for ループ内で print ステートメントを使用したところ、ループが正しく機能することがわかりました。ただし、For ループの外で bestInsp 変数を使用しようとすると、設定した値が保持されません。私の調査から、これはブロック スコープの問題であると考えています。解決策では、For ループの外側で変数を初期化するように指示されていますが (これは実行済みです)、それでも機能しません。私が見落としているものはありますか?

Dim res As Result
Dim insp As Hansen.CDR.Building.IInspection
Dim bestInsp As Hansen.CDR.Building.IInspection
Dim oldKey As Integer = 0
Dim bestKey As Integer = 0
AddMaxFee = False

For Each insp In oBldgApp.Inspections
  If insp.InspectionType.Code = "Foundation" Then
    If insp.InspectionResult.Code.Length > 0 Then
      oldKey = insp.InspectionKey
      If oldKey >= bestKey Then
        bestKey = oldKey
        bestInsp = insp
      End If
    End If
  End If
Next

If bestInsp.InspectionResult.Code.ToUpper = "FAILED" Then
  AddMaxFee = True
End If

編集:削除して問題を解決しました

Dim bestInsp As Hansen.CDR.Building.IInspection

そして再度追加。コンパイラが混乱しただけだと思いますか?

4

0 に答える 0