C # Получить VolumeSerialNumber - PullRequest
1 голос
/ 23 июля 2010

Я работаю над кодом HWID.Я недавно пытался преобразовать этот код из VB.net в C #.У меня есть одна ошибка, которую я не могу понять.

'dsk' является 'переменной', но используется как 'метод'

Вот мой код

    string returnString = null;
    string systemDisk = Environment.GetEnvironmentVariable("windir", EnvironmentVariableTarget.Machine);
    if (systemDisk != null)
    {
        ManagementObject dsk = new ManagementObject("Win32_LogicalDisk.DeviceID=\"" + systemDisk.Substring(0, 2) + "\"");
        dsk.Get();
        returnString = dsk("VolumeSerialNumber");
    }
    return returnString;

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

В c # мы используем [] для индексаторов вместо ().() Обычно (всегда?) Используется для вызова метода / делегата.

Вам необходимо изменить строку

returnString = dsk("VolumeSerialNumber");

на

returnString = dsk["VolumeSerialNumber"];
1 голос
/ 23 июля 2010

dsk должен реализовывать индексацию, которая использует тот же синтаксис, что и вызов метода в VB.NET. Однако в C # он использует свой собственный синтаксис (var[index]). Как таковой попробуйте это:

returnString = dsk["VolumeSerialNumber"]; 
...