今天我一直在搜索我的问题,但没有成功。我甚至不知道它是否可能,但我会在这里试试运气。
让我说我在课堂上的某个地方有这个功能:
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”表达,但我没有找到一个完美解决我的问题的解决方案。而且,我不能在方法调用之外写一个代码字符。
提前致谢!
答案 0 :(得分:3)
像这样:
sub1(9387, New UserControl With {.BackColor = Color.Blue})
答案 1 :(得分:0)
如果我理解你的问题,你可以简单地使用属性初始化器:
sub1(9387, New UserControl With { .BackColor = Color.Blue })
答案 2 :(得分:0)
Immediately-invoked functions:
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)())