-3

このコードをVBで翻訳しようとしましたが、その方法がわかりません...翻訳の方法を教えてもらえますか?

ありがとうございました

private void WatchForDrives()
{
  DeviceStatusMonitor monitor = new DeviceStatusMonitor(DeviceClass.FileSystem, false);
  monitor.StartStatusMonitoring();
  monitor.DeviceNotification += delegate(object sender, DeviceNotificationArgs e)
    { 
    string message = string.Format("Disk '{0}' has been {1}.", e.DeviceName,       e.DeviceAttached ? "inserted" : "removed");
    MessageBox.Show(message, "Disk Status");
    };
 }
4

2 に答える 2

1

http://converter.telerik.com/

Private Sub WatchForDrives()
    Dim monitor As New DeviceStatusMonitor(DeviceClass.FileSystem, False)
    monitor.StartStatusMonitoring()
    monitor.DeviceNotification += Function(sender As Object, e As DeviceNotificationArgs) Do
        Dim message As String = String.Format("Disk '{0}' has been {1}.", e.DeviceName, If(e.DeviceAttached, "inserted", "removed"))
        MessageBox.Show(message, "Disk Status")
    End Function
End Sub
于 2012-08-02T16:07:05.467 に答える
1

VB 10 のみが複数行のラムダをサポートしているため、イベントを処理する別のメソッドを作成する必要があります。これは、コンパイラに関係なく機能するはずです。

Private Sub WatchForDrives()
    Dim monitor As New DeviceStatusMonitor(DeviceClass.FileSystem, False)
    monitor.StartStatusMonitoring()
    AddHandler monitor.DeviceNotification, AddressOf MonitorDeviceNotified
End Sub

Private Sub MonitorDeviceNotified(ByVal sender As Object, ByVal e As DeviceNotificationArgs)
    Dim message As String = String.Format("Disk '{0}' has been {1}.", e.DeviceName, If(e.DeviceAttached, "inserted", "removed"))
    MessageBox.Show(message)
End Sub
于 2012-08-02T16:27:42.237 に答える