我面临一个问题。从对象到短的转换不起作用。
在课堂上我有那个(只是一个例子):
public const uint message_ID = 110;
在另一个类中,在构造函数中,我有:
Assembly asm = Assembly.GetAssembly(typeof(ProtocolTypeManager));
foreach (Type type in asm.GetTypes())
{
if (type.Namespace == null || !type.Namespace.StartsWith(typeof(MyClass).Namespace))
continue;
FieldInfo field = type.GetField("message_ID");
if (field != null)
{
short id = (short)(field.GetValue(type));
...
}
}
直到演员表我都没有问题。我的字段不是 null 并且 field.GetValue(type) 给了我好的对象(对象值 = 110)。
在某处,我读到从 object 到 int 的拆箱工作,好吧,我试过了,但它仍然不起作用:
object id_object = field.GetValue(type);
int id_int = (int)id_object;
short id = (short)id_object;
例外是这个: http: //puu.sh/5d2jR.png(对不起法语。它说这是一个类型或转换错误)。
有没有人有解决方案?
谢谢你,维里迪塔斯。