古いVB6コードを最新のVB.NETコードにしようとしています。
私のVB6コードでは、キーがコレクションに存在するかどうかを照会する必要があります。
私はこのようにします:
Private Function pIndexFromKey(ByRef uCol As Collection, ByVal uText As String) As Long
On Error Resume Next
Dim lRet&
lRet = uCol.Item(uText)
pIndexFromKey = lRet
End Function
pIndexFromKeyが0を返す場合、キーがコレクションに含まれていないことがわかり、次のように追加します。
nCollection.Add(lIndex, sText)
これが「いい」アプローチなのかしら。.NETでVisualBasicコレクションを使用しているからではなく、システムコレクションではなく「VB」であるという事実が疑わしいと思います。
念のために言っておきますが、これは私のVB.NETコードです。
Private Function pIndexFromKey(ByRef uCol As Collection, ByVal uText As String) As Integer
On Error Resume Next
Dim lRet As Integer = CInt(uCol(uText))
Return lRet
End Function
コードは正常に機能しますが、On Error Resume Nextのアプローチは見苦しく、エラーがスローされる(そして食べられる)たびにデバッグウィンドウに例外について通知されるのは好きではありません。
誰かもっと良いアイデアはありますか?