将方法作为参数.NET

  • 本文关键字:参数 NET 方法 vb.net
  • 更新时间 :
  • 英文 :


我今天已经搜索了一段时间以回答我的问题,但没有成功。我什至不知道是否可以,但我会在这里尝试运气。

可以说我在课堂中的某个地方具有此功能:

Public Sub sub1(i as Integer, uc as UserControl)
    ...
End Sub

其他,在其他方法中,我有这个调用:

sub1(46, new UserControl())

问题在于,我想通过用蓝色颜色的背景传递usercontrol,但必须在方法调用中定义它。换句话说,我想通过一个对象传递一些属性,这些属性在构造函数之外进行了修改,并且在方法调用中必须完成所有操作。我在想这样的事情:

sub1(9387, {Dim uc as new UserControl()
            uc.BackColor = Color.Blue
            return uc} )

我知道我可以在方法调用之前定义一个USERCONTROL并进行修改,但是我的真实情况比这更复杂。无论如何,我只想知道目前是否可能,如果是,请告诉我一些示例。在我的研究中,我发现我可以进行一些代表或使用一些" lambda"表达方式,但是我没有找到完美解决问题的解决方案。再说一次,我不能在方法调用之外写一个代码的字符。

预先感谢!

这样:

sub1(9387, New UserControl With {.BackColor = Color.Blue})

在vb.net中可能会立即发出的功能:

Dim result As Integer = (Function() As Integer
                             Return 1
                         End Function)()

或在您的示例中:

sub1(9387, (Function()
                Dim uc As New UserControl()
                uc.BackColor = Color.Blue
                Return uc
            End Function)())

如果我了解您的问题,则可以使用属性初始化器:

sub1(9387, New UserControl With { .BackColor = Color.Blue })

最新更新