以下のコードでは、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
そして再度追加。コンパイラが混乱しただけだと思いますか?