鱼C论坛

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

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

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

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

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

x
public static void ShowInterfaceSummary()
        {
 
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
            foreach (NetworkInterface adapter in interfaces)
            {
                Console.WriteLine("Name: {0}", adapter.Name);
                Console.WriteLine(adapter.Description);
                Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));
                Console.WriteLine("  Interface type .......................... : {0}", adapter.NetworkInterfaceType);
                Console.WriteLine("  Operational status ...................... : {0}",
                    adapter.OperationalStatus);
                string versions = "";
 
                // Create a display string for the supported IP versions.
                if (adapter.Supports(NetworkInterfaceComponent.IPv4))
                {
                    versions = "IPv4";
                }
                if (adapter.Supports(NetworkInterfaceComponent.IPv6))
                {
                    if (versions.Length > 0)
                    {
                        versions += " ";
                    }
                    versions += "IPv6";
                }
                Console.WriteLine("  IP version .............................. : {0}", versions);
                Console.WriteLine();
            }
            Console.WriteLine();
        }


这是一段定时检查NetworkInterface.OperationalStatus的代码,某大神写的,初学C看不太明白,
如果可以的话可否在每行代码后加个解释!谢谢!
最佳答案
2019-7-16 10:41:42
public static void ShowInterfaceSummary()
        {
            # 调用NetworkInterface.GetAllNetworkInterfaces() 获取所有接口 打上变量标签interfaces(这是一个 NetworkInterface 类型的 列表)
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
           # interfaces迭代出这个列表的每个元素 打上变量标签 adapter(这是一个 NetworkInterface 类型)
            foreach (NetworkInterface adapter in interfaces)
            {
                # 打印接口名字
                Console.WriteLine("Name: {0}", adapter.Name);
                # 打印接口信息
                Console.WriteLine(adapter.Description);
                # 输出 adapter.Description.Length(这是 接口信息长度) 相同长度的 = (举例:如果长度是 3 就输出 ===)
                Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));
                  # 输出接口类型
                Console.WriteLine("  Interface type .......................... : {0}", adapter.NetworkInterfaceType);
                # 输出接口状态
                Console.WriteLine("  Operational status ...................... : {0}",
                    adapter.OperationalStatus);
                # 创建一个空变量 打上一个 string(字符串)类型的标签
                string versions = "";
 
                // Create a display string for the supported IP versions.
                # 如果接口支持 IPV4
                if (adapter.Supports(NetworkInterfaceComponent.IPv4))
                {
                   则 versions变量标签的值是 IPv4
                    versions = "IPv4";
                }
                # # 如果接口支持 IPV6
                if (adapter.Supports(NetworkInterfaceComponent.IPv6))
                {
                    # 如果versions变量的值长度大于 0 
                    if (versions.Length > 0)
                    {
                        # 则在 如果versions变量的值 后面加上 空格
                        versions += " ";
                    }
                    # 然后再在 versions变量的值 后面加上 IPv6 (现在变成了:IPv4 IPv6 )
                    versions += "IPv6";
                }
                # 输出 支持的 IP 协议版本类型
                Console.WriteLine("  IP version .............................. : {0}", versions);
                # 没输出 可以当回车输出
                Console.WriteLine();
            }
            # 没输出 可以当回车输出
            Console.WriteLine();
        }
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层    本楼为最佳答案   
public static void ShowInterfaceSummary()
        {
            # 调用NetworkInterface.GetAllNetworkInterfaces() 获取所有接口 打上变量标签interfaces(这是一个 NetworkInterface 类型的 列表)
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
           # interfaces迭代出这个列表的每个元素 打上变量标签 adapter(这是一个 NetworkInterface 类型)
            foreach (NetworkInterface adapter in interfaces)
            {
                # 打印接口名字
                Console.WriteLine("Name: {0}", adapter.Name);
                # 打印接口信息
                Console.WriteLine(adapter.Description);
                # 输出 adapter.Description.Length(这是 接口信息长度) 相同长度的 = (举例:如果长度是 3 就输出 ===)
                Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '='));
                  # 输出接口类型
                Console.WriteLine("  Interface type .......................... : {0}", adapter.NetworkInterfaceType);
                # 输出接口状态
                Console.WriteLine("  Operational status ...................... : {0}",
                    adapter.OperationalStatus);
                # 创建一个空变量 打上一个 string(字符串)类型的标签
                string versions = "";
 
                // Create a display string for the supported IP versions.
                # 如果接口支持 IPV4
                if (adapter.Supports(NetworkInterfaceComponent.IPv4))
                {
                   则 versions变量标签的值是 IPv4
                    versions = "IPv4";
                }
                # # 如果接口支持 IPV6
                if (adapter.Supports(NetworkInterfaceComponent.IPv6))
                {
                    # 如果versions变量的值长度大于 0 
                    if (versions.Length > 0)
                    {
                        # 则在 如果versions变量的值 后面加上 空格
                        versions += " ";
                    }
                    # 然后再在 versions变量的值 后面加上 IPv6 (现在变成了:IPv4 IPv6 )
                    versions += "IPv6";
                }
                # 输出 支持的 IP 协议版本类型
                Console.WriteLine("  IP version .............................. : {0}", versions);
                # 没输出 可以当回车输出
                Console.WriteLine();
            }
            # 没输出 可以当回车输出
            Console.WriteLine();
        }
想知道小甲鱼最近在做啥?请访问 -> 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-10-3 23:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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