1

私は自分の HWID コードに取り組んでいます。最近、このコードを VB.net から C# に変換しようとしました。私は理解できないように見えるこの1つのエラーがあります。

「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

dskVB.NET のメソッド呼び出しと同じ構文を使用するインデックス作成を実装する必要があります。ただし、C# では独自の構文 ( var[index]) を使用します。そのため、これを試してください:

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