2010-07-23 128 views
1

我正在處理我的HWID代碼。我最近嘗試將這個代碼從VB.net轉換爲C#。我有這個我似乎無法弄清楚的錯誤。C#獲取VolumeSerialNumber

「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

在c#中,我們使用[]代替索引器()。 ()通常(總是)用於調用方法/委託。

您需要更改

returnString = dsk("VolumeSerialNumber"); 

returnString = dsk["VolumeSerialNumber"]; 
+0

企鵝只有100 rep和這個拿不出時間,所以我很冷漠,但通常第一個回答時,所有答案都否則線正確/相同被接受。 – 2010-07-23 05:37:35

1

dsk必須實現分度,其使用相同的語法在一個方法調用VB.NET。但是,在C#中它使用自己的語法(var[index])。因此,請嘗試以下操作:

returnString = dsk["VolumeSerialNumber"];