试图创建一个功能

时间:2014-06-10 20:21:42

标签: vb.net function

所以我试图将这个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",就像我将其设置为布尔值或其他东西?!

我目前正在学习功能,我试图让事情变得更清洁,直到现在我还在创建不同的潜水员以更新标签等...

我正在寻找一些提示,所以我可以尝试自己解决这个问题。

1 个答案:

答案 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

但是,如果您传递了无效的驱动器号,请准备好接收例外