我是C#的新手,因此如果我的某些概念出現偏差,請原諒我。我正在使用Canon EDSDK,爲了讓生活更輕鬆,我希望能夠將錯誤消息看作文本而不是十六進制值。該EDSDK.cs文件包含錯誤,如一個長長的清單:關於在C中構建錯誤代碼查找的建議#
public const uint EDS_ERR_TAKE_PICTURE_CARD_NG = 0x00008D07;
public const uint EDS_ERR_TAKE_PICTURE_CARD_PROTECT_NG = 0x00008D08;
理想情況下,我想將所有的這些成某種查找表,所以我可以輸入一個十六進制錯誤代碼,並返回實際消息一個字符串。例如
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...
在我的代碼後,我能抓住從的EDSDK方法之一返回的錯誤信息,並在人類可讀的形式顯示出來:
errorcode= EDSDK.EdsInitializeSDK();
MessageBox.Show(Convert.ToString(EDSDKErrorCodes[errorcode]));
我的問題是...是這樣的處理所有這些錯誤代碼的好方法,還是人們推薦的更好,更有效的方法?如果是這樣,我可以如何將我的哈希表填充爲一系列常量,而不必使用Add方法?
這似乎對我來說是完美的,因爲一切都在一個列表中,無需交叉引用它對字典。非常感謝您的快速幫助。 – mrbencowell 2011-05-17 17:11:24