ManagementObject与ManagementBaseObject这两个类有什么区别?

jlennonxzy 2019-10-16 02:25:56
使用时没感觉有什么区别,见下面代码:
        static int Main(string[] args) {
ManagementClass diskClass =
new ManagementClass("Win32_LogicalDisk");
ManagementObjectCollection disks =
diskClass.GetInstances();
ManagementObjectCollection.ManagementObjectEnumerator
disksEnumerator =
disks.GetEnumerator();
while (disksEnumerator.MoveNext()) {
ManagementObject disk = (ManagementObject)disksEnumerator.Current;
//ManagementBaseObject disk = disksEnumerator.Current;//这样也可以啊,为什么还要强转?
Console.WriteLine(
"Disk found: " + disk["deviceid"]);
}
return 0;
}
...全文
320 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2019-10-17
  • 打赏
  • 举报
回复
各自F2进去看看了
正怒月神 2019-10-17
  • 打赏
  • 举报
回复
引用 7 楼 jlennonxzy 的回复:
[quote=引用 6 楼 正怒月神的回复:]你在ManagementObject 上 F12,看他是不是继承自 ManagementBaseObject
是子类无疑,我只是不明白为什么要强制转成子类,这是msdn上的例子。[/quote] 因为子类有父类没有的方法和属性。 而且他既然能转换为子类,说明进方法的时候,可能就是个子类。
jlennonxzy 2019-10-17
  • 打赏
  • 举报
回复
引用 6 楼 正怒月神的回复:
你在ManagementObject 上 F12,看他是不是继承自 ManagementBaseObject
是子类无疑,我只是不明白为什么要强制转成子类,这是msdn上的例子。
正怒月神 2019-10-17
  • 打赏
  • 举报
回复
你在ManagementObject 上 F12,看他是不是继承自 ManagementBaseObject
exception92 2019-10-17
  • 打赏
  • 举报
回复
引用 4 楼 jlennonxzy 的回复:
[quote=引用 3 楼 exception92 的回复:] 各自F2进去看看了
在我贴的这段代码里,这两个类使用效果是一样的,不太理解.[/quote] 或许只是名称不一样呢
jlennonxzy 2019-10-17
  • 打赏
  • 举报
回复
引用 3 楼 exception92 的回复:
各自F2进去看看了
在我贴的这段代码里,这两个类使用效果是一样的,不太理解.
jlennonxzy 2019-10-16
  • 打赏
  • 举报
回复
引用 1 楼 楠小南的回复:
看名字就知道 后者是前者的基类,基类和派生类有何区别? 你跟你爸有何区别?
有时候使用起来没有什么不同,可以得到相同的结果。
楠小南 2019-10-16
  • 打赏
  • 举报
回复
看名字就知道 后者是前者的基类,基类和派生类有何区别? 你跟你爸有何区别?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧