Invoke Code ハッシュテーブルを引数で渡す場合について

こんにちは。
Hashtable型の引数(名前:ht 値:Hashtable型の変数を格納 方向:In/Out)をInvokeCodeに渡して、以下を実行したいのですが、
ht.Add(“japan”, “日本”)
実行時、“System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。”
が出てしまいます。

VBとかならNewしてないから出るエラーだと認識していますが、
Invoke Codeでは引数として渡しているので、Newする必要は無いのでは、と考えています。

何か認識違いがあり、記述が不足しているのでしょうか?
ご存知の方がいらっしゃいましたら、ご教示をお願い致します。

※ Invoke Code内は現状は以下のコードのみです。
ht.Add(“japan”, “日本”)

※2 格納するHashtable型の変数は規定値は設定していません。

以上になります。よろしくお願い致します。

呼び出し元で初期化してからやってみたら?

1 Like

おっしゃるとおり、呼び出し元でNewしたら出来ました。
どうやってInvokeCode内で初期化するかばかり考えていました。

ありがとうございました。

おお!よかったです!自分もhashtable、勉強します!

HashTableって、
https://www.atmarkit.co.jp/ait/articles/0402/20/news073.html

によると、「 なお、.NET Framework 2.0以降ではDictionaryクラス(System.Collections.Generic名前空間)を使う方がよい。詳しくは「TIPS:ハッシュテーブル(連想配列)を使うには?(Dictionaryクラス編)」をご覧いただきたい。」

と言う事なので、Dictionaryってのを使った方がいいのですね。

小生もDictionaryなら使った事がありました!

1 Like

なるほど、使い方も旧来のHashtableクラスとあまり違わないようですし、こちらがよさそうですね!

情報を御提供いただき、ありがとうございます。
参考にさせて頂きたいと存じます。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.