Разобрать код для измерения температуры ЖД - C#

Узнай цену своей работы

Формулировка задачи:

всем привет!) есть данный код для измерения температуры ЖД
//S.M.A.R.T.  Temperature attritube
const byte TEMPERATURE_ATTRIBUTE = 194;
public List GetDriveTemp()
{
    List retval = new List();
    try
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData");
                //loop through all the hard disks
        foreach (ManagementObject queryObj in searcher.Get())
        {
            byte[] arrVendorSpecific = (byte[])queryObj.GetPropertyValue("VendorSpecific");
            //Find the temperature attribute
                        int tempIndex = Array.IndexOf(arrVendorSpecific, TEMPERATURE_ATTRIBUTE);
            retval.Add(arrVendorSpecific[tempIndex + 5]);
        }
    }
    catch (ManagementException err)
    {
        Console.WriteLine("An error occurred while querying for WMI data: " + err.Message);
    }
    return retval;
}
у меня выдает ошибку на List, что его не существует, подскажите что это за элемент
вот такую ошибку выдает "Ошибка 1 Использование универсального тип "System.Collections.Generic.List" требует аргументы типа "1"

Решение задачи: «Разобрать код для измерения температуры ЖД»

textual
Листинг программы
        private void button1_Click(object sender, EventArgs e)
        {
            foreach (byte b in GetDriveTemp())
            {
                listBox1.Items.Add(Convert.ToInt32(b));
            }
        }
 
        const byte TEMPERATURE_ATTRIBUTE = 194;
        public List<byte> GetDriveTemp()
        {
            List<byte> retval = new List<byte>();
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData");
                //loop through all the hard disks
                foreach (ManagementObject queryObj in searcher.Get())
                {
                    byte[] arrVendorSpecific = (byte[])queryObj.GetPropertyValue("VendorSpecific");
                    //Find the temperature attribute
                    int tempIndex = Array.IndexOf(arrVendorSpecific, TEMPERATURE_ATTRIBUTE);
                    retval.Add(arrVendorSpecific[tempIndex + 5]);
                }
            }
            catch (ManagementException err)
            {
                Console.WriteLine("An error occurred while querying for WMI data: " + err.Message);
            }
            return retval;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы