liuyanming002 2015-06-15 08:31 采纳率: 60%
浏览 2091
已采纳

C# 求大神解释下面代码

public static string GetSerialPort()
{
return MulGetHardwareInfo(HardwareEnum.Win32_SerialPort, "Name");

    }
    //枚举win32 api
    public enum HardwareEnum
    {

        Win32_SerialPort
            ,
        Win32_SerialPortConfiguration
            ,
        Win32_SerialPortSetting

    }


    public static string MulGetHardwareInfo(HardwareEnum hardType, string propKey)
    {

        string strs = "";
        string ttt = "STMicr";

        ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + hardType);
        var hardInfos = searcher.Get();
        foreach (var hardInfo in hardInfos)
        {
            if (hardInfo.Properties[propKey] != null)
            {
                strs = hardInfo.Properties[propKey].Value.ToString();
                string id = Convert.ToString(strs.Substring(0, 6));
                if (id == ttt)
                {
                    strs = Convert.ToString(strs.Substring(37, 5));
                }
                else 
                {
                    strs = "No Found";                       
                }
            }  
        }
        return strs;
    }
  • 写回答

2条回答

  • Young_Liu 2015-06-15 08:53
    关注

    大概的意思是 从数据库里取出某字段 循环检查值的前6位是不是和STMicr相等,如果等则取某一字段。
    但是这段代码没有实现上述功能,也就是说有bug:
    1、strs.Substring(37, 5) ,没有这种取值方式。
    2、strs = Convert.ToString(strs.Substring(37, 5));取出的字符串只存在临时变量中,下一次循环会把查询结果覆盖,除非hardInfos的元素只有一个,不然该方法返回的总是最后一个元素的相应字段,没有意义

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题