1

我正在处理我的 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;
4

2 回答 2

2

在 c# 中,我们使用 [] 而不是 () 作为索引器。() 通常(总是?)用于调用方法/委托。

你需要换行

returnString = dsk("VolumeSerialNumber");

returnString = dsk["VolumeSerialNumber"];
于 2010-07-23T04:11:43.270 回答
1

dsk必须实现索引,它使用与 VB.NET 中的方法调用相同的语法。但是,在 C# 中,它使用自己的语法 ( var[index])。因此试试这个:

returnString = dsk["VolumeSerialNumber"]; 
于 2010-07-23T04:11:24.363 回答