HashtableのNull比較をするには?


k  2008-09-26 23:57:15  No: 140532

現在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


k  2008-09-27 00:25:35  No: 140533

自己レスです。
ht.Count も ht.ContainsKey も エラーになるのは ht がNullだからでしょうか。
上記の疑問があったのでスレッド名をHashtableのNull比較についてって書きました。


Hongliang  2008-09-27 01:05:04  No: 140534

> ht.Count も ht.ContainsKey も エラーになるのは ht がNullだからでしょうか。
Nothing が原因ではありません。もしそうなら、NullReferenceException がなげられます。

error: cannot obtain value
で検索してみたら、変数とかが多すぎるときにデバッグ時に発生するみたいですね。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加