Laden...

Problem mit übersetztem VB-Code in C#-Code via VS 2022

Letzter Beitrag vor 5 Monaten 6 Posts 462 Views
Problem mit übersetztem VB-Code in C#-Code via VS 2022

Hallo zusammen,

ich habe VBCode im VisualStudio mit der entsprechenden Erweiterung fürs Übersetzen von VB nach C# übersetzt.

Der Code sieht gut aus bis auf die erste Zeile, die in C# lautet:       public static void CornerForm(Form fo,  PositionsOfObjects Pos, short screenNr)
Dazu erhalte ich folgende Fehlermeldung siehe Anhang.

Was kann man da konkret in C# tun?   (Ich bin in C# nicht geübt!)

Grüße - Dietrich

Die Meldung drückt den Fehler schon komplett aus. Man müsste die Methode in eine Klasse verschieben und gegebenenfalls Referenzen zu dieser korrigieren. Nun stellt sich mir allerdings noch die Frage ob das die einzigste Fehlermeldung ist, da wenn die Methode irgendwo im VB Code verwendet wurde auch weitere Fehler angezeigt werden müssten, da die Methode so nicht gefunden werden kann.

in C# nicht geübt!)

Kurz: der verwendete C#-Compiler hat mehr Leitplanken an formell korrekten Code, zum Beispiel die Verwendung von Klassen zur Strukturierung des Codes  (neuere Versionen sind hier liberaler, aber der Compiler fügt die passenden Schlüsselwörter im Hintergrund hinzu).  Vermutlich wurde das Original VB .NET Programm eher prozedural implementiert.

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

Hallo zusammen,

ich habe jetzt den Code soweit, dass der Fehler nich mehr kommt.

Alles steht in einem Modul myModul.cs  und beginnt mit:

using System.Drawing;
using System.Windows.Forms;

public static class FormFunctions {

public static void CornerForm(Form fo,  PositionsOfObjects Pos, short screenNr = 0)
{.....................

Nun möchte ich in meiner FormLoad- Prozedur die Methode CornerForm mit Parametern aufrufen...  Leider keine Ahnung, wie man das in C# macht.

Bitte um Hilfe!

Grüße - Dietrich

Aufrufen kannst du diese einfach mit

FormFunctions.CornerForm(param1, param2, param3);

Wenn du mit FormLoad-Prozedur das event Load einer Form meinst kannst du im Konstruktor nach InitializeComponent();folgendes schreiben:

Load += (sender, e) => FormFunctions.CornerForm(param1, param2, param3);

Hallo,   vielen Dank an alle, die mit Tipps weitergeholfen haben!

Ich habe es hinbekommen, läuft!  Musste mich eben an die C#-Begriffe gewöhnen...

Schönen Sonntag und Grüße - Dietrich