2010-07-23 130 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"];