Hallo liebes Forum,
ich habe in der Vergangenheit das Forum immer "passiv" konsultiert, wenn ich bei Problemen nicht weiterkam -das hat bisher auch gut funktioniert. Jetzt stehe ich jedoch vor einem Problem welches scheinbar relativ speziell ist -jedenfalls komme ich mit der Suchfunktion alleine nicht weiter.
Es geht um folgendes: Ich versuche zur Zeit ein C# Projekt zu VB.NET zu übersetzen (es handelt sich um eine API für die Kommunikation mit einen Server) (Link zum Gitthub Projekt: github.com/dougdellolio/coinbasepro-csharp ).
Mir ist bewusst, dass dies eigentlich nicht nötig ist und ich das C# Projekt direkt in mein Projekt importieren könnte.
Da ich C# jedoch nicht beherrsche wollte ich das Projekt in VB.NET übersetzen, um nachvollziehen zu können wie der Code funktioniert (er soll unter anderem als Übung dienen, um Eventhandling zu lernen, da ich mich damit noch nicht viel beschäftigt habe (bei vb.net läuft das interessante ja hinter dem Vorhang ab, natürlich ist mir bewusst, dass MouseClicks etc. alles Events sind und ich Events daher schon immer verwendet habe, aber eben nicht selbst gestrickt habe).
Bei dem voeliegenden Probelem habe ich versucht die Zeilen per Converter in VB.NET zu übersetzen (was natürlich nicht funktioniert hat). Dann kam ich auf die Idee das Projekt in eine DLL zu kompilieren und danach wieder in vb.net zu decompilieren, da ich dachte durch die CIL wären C# und vb.net leicht ineinander überführbar. Leider gibt der Decompiler auch hier auf. Es scheint also eine Grundfunktionalität bei C# zu geben (Übergabe eines Ereignisses als Parameter an eine Funktion bzw. einen Eventhandler an eine Prozedur anhängen -wobei ich eher glaube, das ich gar nicht richtig verstanden habe was in diesen Zeilen passiert ), welches bei vb.net nicht ohne workaround möglich ist.
Hier 2 Beispiele wie es im Originalcode von C# aussieht:
Die Zeilen 3 bzw. 16 bis 21 wären die, die ich nicht verstehe.
Es wäre super, wenn mir jemand erläutern könnte warum das bei vb.net anders gemacht werden muss und vor allem, was hier überhaupt passiert.
Wenn weitere Informationen nötig sind, meldet Euch einfach, dann füge ich sie noch hinzu.
Vielen Dank im Voraus!
ich habe in der Vergangenheit das Forum immer "passiv" konsultiert, wenn ich bei Problemen nicht weiterkam -das hat bisher auch gut funktioniert. Jetzt stehe ich jedoch vor einem Problem welches scheinbar relativ speziell ist -jedenfalls komme ich mit der Suchfunktion alleine nicht weiter.
Es geht um folgendes: Ich versuche zur Zeit ein C# Projekt zu VB.NET zu übersetzen (es handelt sich um eine API für die Kommunikation mit einen Server) (Link zum Gitthub Projekt: github.com/dougdellolio/coinbasepro-csharp ).
Mir ist bewusst, dass dies eigentlich nicht nötig ist und ich das C# Projekt direkt in mein Projekt importieren könnte.
Da ich C# jedoch nicht beherrsche wollte ich das Projekt in VB.NET übersetzen, um nachvollziehen zu können wie der Code funktioniert (er soll unter anderem als Übung dienen, um Eventhandling zu lernen, da ich mich damit noch nicht viel beschäftigt habe (bei vb.net läuft das interessante ja hinter dem Vorhang ab, natürlich ist mir bewusst, dass MouseClicks etc. alles Events sind und ich Events daher schon immer verwendet habe, aber eben nicht selbst gestrickt habe).
Bei dem voeliegenden Probelem habe ich versucht die Zeilen per Converter in VB.NET zu übersetzen (was natürlich nicht funktioniert hat). Dann kam ich auf die Idee das Projekt in eine DLL zu kompilieren und danach wieder in vb.net zu decompilieren, da ich dachte durch die CIL wären C# und vb.net leicht ineinander überführbar. Leider gibt der Decompiler auch hier auf. Es scheint also eine Grundfunktionalität bei C# zu geben (Übergabe eines Ereignisses als Parameter an eine Funktion bzw. einen Eventhandler an eine Prozedur anhängen -wobei ich eher glaube, das ich gar nicht richtig verstanden habe was in diesen Zeilen passiert ), welches bei vb.net nicht ohne workaround möglich ist.
Hier 2 Beispiele wie es im Originalcode von C# aussieht:
C#-Quellcode
-
- public void Start(
- List<ProductType> productTypes,
- List<ChannelType> channelTypes = null)
- {
- if (productTypes.Count == 0)
- {
- throw new ArgumentException($"You must specify at least one {nameof(productTypes)}");
- }
- stopWebSocket = false;
- this.productTypes = productTypes;
- this.channelTypes = channelTypes;
- webSocketFeed = createWebSocketFeed();
- webSocketFeed.Closed += WebSocket_Closed;
- webSocketFeed.Error += WebSocket_Error;
- webSocketFeed.MessageReceived += WebSocket_MessageReceived;
- webSocketFeed.Opened += WebSocket_Opened;
- webSocketFeed.Open();
- Log.Information("WebSocket started with {@ProductTypes} {@ChannelTypes}", this.productTypes, this.channelTypes);
- }
Die Zeilen 3 bzw. 16 bis 21 wären die, die ich nicht verstehe.
Es wäre super, wenn mir jemand erläutern könnte warum das bei vb.net anders gemacht werden muss und vor allem, was hier überhaupt passiert.
Wenn weitere Informationen nötig sind, meldet Euch einfach, dann füge ich sie noch hinzu.
Vielen Dank im Voraus!