刚学C#,下面一段程序,我在控制台应用程序下运行总是报:
The type or namespace name 'Management' does not exist in the namespace 'System' (are you missing an assembly reference?)为什么?是不是控制台程序下没有该引用?
using System;
using System.Management; //在VS2005下,建什么工程可以用?? namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
if (Convert.ToBoolean(nic["ipEnabled"]) == true)
{
Console.WriteLine((nic["IPAddress"] as String[])[0]);
Console.WriteLine((nic["IPSubnet"] as String[])[0]);
Console.WriteLine((nic["DefaultIPGateway"] as String[])[0]);
}
}
}
}
}
The type or namespace name 'Management' does not exist in the namespace 'System' (are you missing an assembly reference?)为什么?是不是控制台程序下没有该引用?
using System;
using System.Management; //在VS2005下,建什么工程可以用?? namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
if (Convert.ToBoolean(nic["ipEnabled"]) == true)
{
Console.WriteLine((nic["IPAddress"] as String[])[0]);
Console.WriteLine((nic["IPSubnet"] as String[])[0]);
Console.WriteLine((nic["DefaultIPGateway"] as String[])[0]);
}
}
}
}
}
和nic["IPAddress"].ToString() 效果是一样的 为什么要那样写?
效果肯定不一样。因为 nic["IPAddress"] 本质上是一个字符串数组(string[]),而取得值时它的类型是 object,所以要从object转换为它的真正类型。(nic["IPAddress"] as String[])[0] 的输出是“192.168.51.100”之类的实际内容,
而 nic["IPAddress"].ToString() 的输出是 “System.String[]”。
可以改为:
if ((bool)nic["ipEnabled"])
效果是一样的。