C# 这个.Task()给VB带来了一个错误,如何修复呢?

C# 这个.Task()给VB带来了一个错误,如何修复呢?,c#,vb.net,C#,Vb.net,对于C#代码 但在VB中: Public Property Task() As Action Get Return m_Task End Get Set(value As Action) m_Task = Value End Set End Property Me.Task() 这是行不通的。 如何解决此问题?使用 Me.Task()() 而不是 Me.Task()

对于C#代码

但在VB中:

 Public Property Task() As Action
        Get
            Return m_Task
        End Get
        Set(value As Action)
            m_Task = Value
        End Set
    End Property
 Me.Task()
这是行不通的。 如何解决此问题?

使用

Me.Task()()
而不是

Me.Task()

在VB.Net中访问属性时,可以提供括号或省略括号,因此

Me.Task() = Sub() Console.WriteLine("123")
相当于

Me.Task = Sub() Console.WriteLine("123")
因此,如果你只是写

Me.Task()

编译器在这里假设一个属性访问,并希望您使用它的值或分配一个新值。因此,您必须使用第二对括号来使用属性值并调用委托。

“将不起作用”非常模糊。到底出了什么问题?仅供参考-您没有提到您使用的VS的哪个版本,但VB自VS2010起就有了,因此您的操作可能看起来像
Public Property Task as Action
。这将引发以下编译器错误:属性访问必须分配给属性或使用其值。
Me.Task()