鱼C论坛

 找回密码
 立即注册
查看: 1077|回复: 5

[已解决]求大神解释一下这段代码

[复制链接]
发表于 2019-7-16 00:00:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. public static void ShowInterfaceSummary()
  2.         {

  3.             NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
  4.             foreach (NetworkInterface adapter in interfaces)
  5.             {
  6.                 Console.WriteLine("Name: {0}", adapter.Name);
  7.                 Console.WriteLine(adapter.Description);
  8.                 Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));
  9.                 Console.WriteLine("  Interface type .......................... : {0}", adapter.NetworkInterfaceType);
  10.                 Console.WriteLine("  Operational status ...................... : {0}",
  11.                     adapter.OperationalStatus);
  12.                 string versions = "";

  13.                 // Create a display string for the supported IP versions.
  14.                 if (adapter.Supports(NetworkInterfaceComponent.IPv4))
  15.                 {
  16.                     versions = "IPv4";
  17.                 }
  18.                 if (adapter.Supports(NetworkInterfaceComponent.IPv6))
  19.                 {
  20.                     if (versions.Length > 0)
  21.                     {
  22.                         versions += " ";
  23.                     }
  24.                     versions += "IPv6";
  25.                 }
  26.                 Console.WriteLine("  IP version .............................. : {0}", versions);
  27.                 Console.WriteLine();
  28.             }
  29.             Console.WriteLine();
  30.         }
复制代码



这是一段定时检查NetworkInterface.OperationalStatus的代码,某大神写的,初学C看不太明白,
如果可以的话可否在每行代码后加个解释!谢谢!
最佳答案
2019-7-16 10:41:42
  1. public static void ShowInterfaceSummary()
  2.         {
  3.            # 调用NetworkInterface.GetAllNetworkInterfaces() 获取所有接口 打上变量标签interfaces(这是一个 NetworkInterface 类型的 列表)
  4.             NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
  5.            # interfaces迭代出这个列表的每个元素 打上变量标签 adapter(这是一个 NetworkInterface 类型)
  6.             foreach (NetworkInterface adapter in interfaces)
  7.             {
  8.                 # 打印接口名字
  9.                 Console.WriteLine("Name: {0}", adapter.Name);
  10.                 # 打印接口信息
  11.                 Console.WriteLine(adapter.Description);
  12.                 # 输出 adapter.Description.Length(这是 接口信息长度) 相同长度的 = (举例:如果长度是 3 就输出 ===)
  13.                 Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));
  14.                   # 输出接口类型
  15.                 Console.WriteLine("  Interface type .......................... : {0}", adapter.NetworkInterfaceType);
  16.                 # 输出接口状态
  17.                 Console.WriteLine("  Operational status ...................... : {0}",
  18.                     adapter.OperationalStatus);
  19.                 # 创建一个空变量 打上一个 string(字符串)类型的标签
  20.                 string versions = "";

  21.                 // Create a display string for the supported IP versions.
  22.                 # 如果接口支持 IPV4
  23.                 if (adapter.Supports(NetworkInterfaceComponent.IPv4))
  24.                 {
  25.                    则 versions变量标签的值是 IPv4
  26.                     versions = "IPv4";
  27.                 }
  28.                 # # 如果接口支持 IPV6
  29.                 if (adapter.Supports(NetworkInterfaceComponent.IPv6))
  30.                 {
  31.                     # 如果versions变量的值长度大于 0
  32.                     if (versions.Length > 0)
  33.                     {
  34.                         # 则在 如果versions变量的值 后面加上 空格
  35.                         versions += " ";
  36.                     }
  37.                     # 然后再在 versions变量的值 后面加上 IPv6 (现在变成了:IPv4 IPv6 )
  38.                     versions += "IPv6";
  39.                 }
  40.                 # 输出 支持的 IP 协议版本类型
  41.                 Console.WriteLine("  IP version .............................. : {0}", versions);
  42.                 # 没输出 可以当回车输出
  43.                 Console.WriteLine();
  44.             }
  45.             # 没输出 可以当回车输出
  46.             Console.WriteLine();
  47.         }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-16 01:52:15 | 显示全部楼层
本帖最后由 Croper 于 2019-7-16 01:55 编辑

首先,这不是c,是c#,
第二,我也不怎么懂c#
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-16 10:31:52 | 显示全部楼层
      "每行代码后加个解释",请问楼主,你这是想消费别人的善心吗???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-16 10:41:42 | 显示全部楼层    本楼为最佳答案   
  1. public static void ShowInterfaceSummary()
  2.         {
  3.            # 调用NetworkInterface.GetAllNetworkInterfaces() 获取所有接口 打上变量标签interfaces(这是一个 NetworkInterface 类型的 列表)
  4.             NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
  5.            # interfaces迭代出这个列表的每个元素 打上变量标签 adapter(这是一个 NetworkInterface 类型)
  6.             foreach (NetworkInterface adapter in interfaces)
  7.             {
  8.                 # 打印接口名字
  9.                 Console.WriteLine("Name: {0}", adapter.Name);
  10.                 # 打印接口信息
  11.                 Console.WriteLine(adapter.Description);
  12.                 # 输出 adapter.Description.Length(这是 接口信息长度) 相同长度的 = (举例:如果长度是 3 就输出 ===)
  13.                 Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));
  14.                   # 输出接口类型
  15.                 Console.WriteLine("  Interface type .......................... : {0}", adapter.NetworkInterfaceType);
  16.                 # 输出接口状态
  17.                 Console.WriteLine("  Operational status ...................... : {0}",
  18.                     adapter.OperationalStatus);
  19.                 # 创建一个空变量 打上一个 string(字符串)类型的标签
  20.                 string versions = "";

  21.                 // Create a display string for the supported IP versions.
  22.                 # 如果接口支持 IPV4
  23.                 if (adapter.Supports(NetworkInterfaceComponent.IPv4))
  24.                 {
  25.                    则 versions变量标签的值是 IPv4
  26.                     versions = "IPv4";
  27.                 }
  28.                 # # 如果接口支持 IPV6
  29.                 if (adapter.Supports(NetworkInterfaceComponent.IPv6))
  30.                 {
  31.                     # 如果versions变量的值长度大于 0
  32.                     if (versions.Length > 0)
  33.                     {
  34.                         # 则在 如果versions变量的值 后面加上 空格
  35.                         versions += " ";
  36.                     }
  37.                     # 然后再在 versions变量的值 后面加上 IPv6 (现在变成了:IPv4 IPv6 )
  38.                     versions += "IPv6";
  39.                 }
  40.                 # 输出 支持的 IP 协议版本类型
  41.                 Console.WriteLine("  IP version .............................. : {0}", versions);
  42.                 # 没输出 可以当回车输出
  43.                 Console.WriteLine();
  44.             }
  45.             # 没输出 可以当回车输出
  46.             Console.WriteLine();
  47.         }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-16 11:14:37 | 显示全部楼层
jackz007 发表于 2019-7-16 10:31
"每行代码后加个解释",请问楼主,你这是想消费别人的善心吗???

请看清楚我最后一句话:"如果可以的话可否在每行代码后加个解释!谢谢!"  我是说可否,你有注意到可否这两个字吗?我是因为不懂这段代码,加个解释是为了弄清楚这段代码的意思,是干嘛用的,怎么就成了消费别人的善心了呢?这个版块的目的本来就是让我们互相帮助交流学习的,如果照你这样说那这个版块的每个提问的人都在消费别人的善心喽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-16 11:27:16 | 显示全部楼层
千年鲨 发表于 2019-7-16 11:14
请看清楚我最后一句话:"如果可以的话可否在每行代码后加个解释!谢谢!"  我是说可否,你有注意到可否这 ...

       我要是你,会先把自己对这段代码的理解和困惑讲出来,这样,别人才可以针对问题精准帮到你,其效果肯定会比每行代码加注释要好很多。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 13:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表