我今天已经搜索了一段时间以回答我的问题,但没有成功。我什至不知道是否可以,但我会在这里尝试运气。
可以说我在课堂中的某个地方具有此功能:
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 })