我是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