targetInstance.GetPropertyValue("EventCode")
возвращает в штучной упаковке ushort
.
Существует действительный показаний для превращения в штучной упаковке ushort
в ushort
:
ushort usVal = (ushort)boxUS;
Есть действительное явноеприведение для превращения ushort
в int
:
int iVal = (int)ushortVal;
Существует также допустимое неявное приведение для превращения ushort
в int
:
int iVal = uShortVal;
Ноне существует действительного неявного или явного приведения для преобразования ushort
в штучной упаковке в int
:
int iVal = (int)boxUS; // throws exception.
Но мы можем объединить вышеперечисленное:
int iVal = (int)(ushort)boxUS;
int iVal2 = (ushort)boxUS;
Следовательно:
EventID = (ushort)targetInstance.GetPropertyValue("EventCode"); //works
EventID = (int)(ushort)targetInstance.GetPropertyValue("EventCode"); //works and arguably clearer.
Мы также можем использовать класс Convert
, который немного дороже и многословнее, но удобен в случаях, когда есть несколько возможных типов, которые могут быть в штучной упаковке.