Ich bin hauptsächlich ein Python-Entwickler, aber ich binLeider muss in VB .NET ein GUI-basiertes Programm für einen Client erstellt werden. Ich habe die meisten Eigenheiten von VB selbst herausgefunden, aber ich hatte kein Glück, einen Weg zu finden, um diese einfache Sprache in VB zu übersetzen:
def my_function(arg1, arg2, arg3):
# do stuff with args
pass
args = [1,2,3]
my_function(*args)
Ich beschäftige mich mit einigen unangenehmen Funktionen mit vielen Variablen, und der Code wäre viel schöner und lesbarer, wenn ich so etwas tun könnte, also bin ich nicht dabei
MyFunction(reader(0), reader(1), reader(2), reader(3)) "ad infinum
Antworten:
6 für die Antwort № 1Art von! Erstens, wenn es Ihnen bequemer wird, können Sie das Gegenteil tun. Sie werden Parameter-Arrays genannt:
Sub MyFunction(ParamArray things() As Whatever)
" Do something with things
End Sub
Das sind also gleichwertig:
MyFunction(reader(0), reader(1), reader(2), reader(3), ...)
MyFunction(reader)
Aber wenn Sie wirklich ein plattes Ding wollen, dann sind dies Delegierte:
Dim deleg As New Action(Of YourTypeA, YourTypeB)(AddressOf MyFunction)
deleg.DynamicInvoke(reader)
Wenn Sie keinen finden können Action
oder Func
Um Ihren Bedürfnissen gerecht zu werden, müssen Sie Ihren eigenen Delegatentyp definieren:
Private Delegate Sub WayTooManyArgumentsDelegate(match arguments here)
und
Dim deleg As New WayTooManyArgumentsDelegate(AddressOf MyFunction)