私は C# を初めて使用するので、概念が歪んでいる場合はご容赦ください。私は Canon EDSDK を使用しています。生活を楽にするために、エラー メッセージを 16 進値ではなくテキストとして表示できるようにしたいと考えています。EDSDK.cs ファイルには、次のようなエラーの長いリストが含まれています。
public const uint EDS_ERR_TAKE_PICTURE_CARD_NG = 0x00008D07;
public const uint EDS_ERR_TAKE_PICTURE_CARD_PROTECT_NG = 0x00008D08;
理想的には、これらすべてをある種のルックアップ テーブルに入れ、HEX エラーコードを入力して実際のメッセージを文字列として返すことができるようにしたいと考えています。例えば
Hashtable EDSDKErrorCodes = new Hashtable();
EDSDKErrorCodes.Add("0x00008D01", "EDS_ERR_TAKE_PICTURE_AF_NG");
EDSDKErrorCodes.Add("0x00008D08", "EDS_ERR_TAKE_PICTURE_CARD_PROTECT_NG");
etc etc...
コードの後半では、EDDSK メソッドの 1 つから返されたエラー メッセージを取得し、それを人間が読める形式で表示できます。
errorcode= EDSDK.EdsInitializeSDK();
MessageBox.Show(Convert.ToString(EDSDKErrorCodes[errorcode]));
私の質問は..これはこれらすべてのエラーコードを処理する良い方法ですか、それとも人々が推奨するより良い効率的な方法はありますか? もしそうなら、Add メソッドを使用するのではなく、一連の定数としてハッシュ テーブルを埋めるにはどうすればよいでしょうか?