2

次のコードブロックでは、VB.NETは次の場合にWithブロックを正常に終了しますかVar1 = 2

With MyObject
    .Property1 = "test"
    If Var1 = 2 Then
        Return True
    End If
    .Property2 = "Test2"
End With

Return False

これがVB6の問題であり、予測できない動作で頭痛を引き起こすことを覚えています-VB.NETにも同じことが当てはまりますか?

4

2 に答える 2

0

私は主に興味があったので、ここに別の答えを追加する必要がありました。WITHをあまり使用したことがなく、ブロックを途中で終了したことを思い出せませんが、VB2010でこれをテストしたところ、問題なく動作しているようです(つまり、期待どおりに...

Var1 = 2の場合、関数はTRUEを返し、MyObject.Property1の値は「Test」ですが、MyObject.Property2は設定されていません。

テストではこのように機能した可能性がありますが、デバッグがオフになっているなど、かなりのサイズの実際のアプリでは、動作が異なる可能性があるため、考慮すべきことがあります。

于 2011-03-10T20:08:45.857 に答える