程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c#解釋代碼-C# 求大神解釋下面代碼

c#解釋代碼-C# 求大神解釋下面代碼

編輯:編程綜合問答
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;
    }

最佳回答:


大概的意思是 從數據庫裡取出某字段 循環檢查值的前6位是不是和STMicr相等,如果等則取某一字段。
但是這段代碼沒有實現上述功能,也就是說有bug:
1、strs.Substring(37, 5) ,沒有這種取值方式。
2、strs = Convert.ToString(strs.Substring(37, 5));取出的字符串只存在臨時變量中,下一次循環會把查詢結果覆蓋,除非hardInfos的元素只有一個,不然該方法返回的總是最後一個元素的相應字段,沒有意義

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved