所以我试图将这个sub更改为一个函数,以便我可以引用它并设置label.text因为它的结果,所以我不必创建新的子更新不同的标签。
Dim drive As String = "C"
Dim disk As ManagementObject = _
New ManagementObject _
("win32_logicaldisk.deviceid=""" + drive + ":""")
disk.Get()
Dim serial As String = disk("VolumeSerialNumber").ToString()
Label1.Text = ("Serial: " & serial)
有人可以告诉我如何将其更改为功能吗?我尝试将Serial声明为空字符串,然后将最后一行更改为:
Return serial = disk("VolumeSerialNumber").ToString()
目前这只是将Label1.Text设置为显示" False",就像我将其设置为布尔值或其他东西?!
我目前正在学习功能,我试图让事情变得更清洁,直到现在我还在创建不同的潜水员以更新标签等...
我正在寻找一些提示,所以我可以尝试自己解决这个问题。
答案 0 :(得分:2)
这实际上是一种简单的重构操作。
Sub Main
Dim driveLetter = "X"
Try
Dim result = DriveSerialNumber(driveLetter)
Console.WriteLine(result)
Catch ex as Exception
Console.WriteLine("Error: drive " & driveLetter & ": " & ex.Message)
End Try
End Sub
Public Function DriveSerialNumber(drive as String) As String
Dim disk As ManagementObject = _
New ManagementObject _
("win32_logicaldisk.deviceid=""" + drive + ":""")
disk.Get()
return disk("VolumeSerialNumber").ToString()
End Function
但是,如果您传递了无效的驱动器号,请准备好接收例外