JCC*_*CyC 3 c# casting strong-typing
我正在操作列表中的项目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"];
...
...
...
}
Run Code Online (Sandbox Code Playgroud)
每个"字典访问" queryObj返回一个C#object,实际上无论属性是什么 - 我必须事先知道它们的"真实"类型,这没关系.
问题是,我InvalidCastException在uint演员阵容中得到了一个.我必须使用真正的类型,这是ushort.演员不ushort应该uint被接受和明显吗?
在这种情况下,我最终会转换值string,但是如果我不得不让他们到什么uint或int或long变量?