C# 到 VB.net 委托转换

C# to VB.net delegate conversiom

我正在尝试将 C# 代码转换为 VB.net,委托阻止了我。

原代码为:

using (var source = new ETWTraceEventSource(sessionName, TraceEventSourceType.Session))
        {
            Action<TraceEvent> action = delegate (TraceEvent data)
            {
                var taskName = data.TaskName;
                var EventName = data.EventName;

行操作<>...对我来说是个问题。 一些例子将不胜感激。 谢谢,杰瑞

以这种方式使用 'delegate' 关键字是过时的遗留 C#(pre-lambda 运算符)。现代 C# 方法是使用 lambda 运算符:

Action<TraceEvent> action = (TraceEvent data) =>

两者的 VB 等价于:

Option Infer On

Using source = New ETWTraceEventSource(sessionName, TraceEventSourceType.Session)
    Dim action As Action(Of TraceEvent) = Sub(data As TraceEvent)
        Dim taskName = data.TaskName
        Dim EventName = data.EventName
    End Sub
End Using