我正在操作列表中的项目,即System.Management.ManagementObjectCollection
. 这些项目中的每一个都是一个System.Management.ManagementObject
包含由字符串索引的属性。看:
foreach (ManagementObject queryObj in searcher.Get())
{
string osversion = (string)queryObj["Version"];
string os = (string)queryObj["Name"];
uint spmajor = (uint)queryObj["ServicePackMajorVersion"];
uint spminor = (uint)queryObj["ServicePackMinorVersion"];
...
...
...
}
每个“字典访问”都queryObj
返回一个 C# object
,这实际上是该属性应该是什么——我必须事先知道它们的“真实”类型,这没关系。
问题是,我InvalidCastException
在uint
演员阵容中得到了一个。我必须使用真正的类型,即ushort
. 演员表不应该ushort
是uint
可以接受和明显的吗?
在这种情况下,我最终会将这些值转换为string
,但是如果我必须将它们放入uint
orint
或long
变量中怎么办?