現在VB.NETで開発を行っています。
Hashtableのキーを指定して値を取得したいのですが、下記方法で行おうとするとエラーが発生したり、期待値が返ってこなかったりします。
どなたかご教授願えますでしょうか。よろしくお願いします。
Hashtable ht = New Hashtable() '← インスタンスを生成します
if ht IsNot Nothing then '←Trueが返ってきます(この判定は不要ですが検証用のために入れました)
if ht.Count <> 0 then '←エラー発生(error: cannot obtain value)インスタンスは生成されているはずなのに取得できない理由がわかりません
'検証用なので特に処理はなし
end if
if ht.ContainsKey("aaa") then '←システム エラー &H80040014& が発生します。これも理由がわかりません。
’処理1
end if
end if
自己レスです。
ht.Count も ht.ContainsKey も エラーになるのは ht がNullだからでしょうか。
上記の疑問があったのでスレッド名をHashtableのNull比較についてって書きました。
> ht.Count も ht.ContainsKey も エラーになるのは ht がNullだからでしょうか。
Nothing が原因ではありません。もしそうなら、NullReferenceException がなげられます。
error: cannot obtain value
で検索してみたら、変数とかが多すぎるときにデバッグ時に発生するみたいですね。