Wie kann ich Text in einer Variable in C# speichern, ohne ihn zu entfernen, wenn ich zurück in die Main Methode komme?

Hey, ich habe vor ein paar Tagen angefangen C# zu lernen und versuche nun einige einfache Programme für Anfänger zu programmieren. Der Taschenrechner hat schon funktioniert jedoch scheitert es jetzt bei einem Schreibprogramm, was den Text temporär in einer Variable der Konsole speichern soll und wieder aufrufbar ist.

Am Anfang meine Codes, habe ich 4 String Variablen als Speicherplatz festgelegt. Wie diese aussehen, sieht man auf dem Bild.

Nun muss der Nutzer angeben, ob er einen neuen Text speichern oder ein vorhandenes Dokument öffnen will. Will er ein neues speichern wird mit Hilfe einer If-Abfrage geschaut, welche von den 4 Variablen noch leer ist.

...darunter sind mit "else if" noch die anderen Speicherplätze festgelegt.

Nach einer Eingabe wird der Text in dem String gespeichert und man gelangt zurück zur Main Methode, wo dann allerdings wieder das, was in die Variable eingetragen wurde gelöscht wird, da ich den Variablen ja einen Startwert zuweisen musste. (sieht man auf dem Bild) ich kann die variablen auch nicht später der Eingabe direkt zuweisen, da die Konsole erst überprüfen muss, welche Variable noch frei ist.

Ich hoffe es ist verständlich, was mein Problem ist und jemand kann mir weiterhelfen.

Vielen Dank schon mal im Voraus!

Bild zum Beitrag
Computer, Software, Technik, programmieren, C Sharp, Technologie, Visual Studio 2019
kann man in C# eine Konsolenanwendung für den OSX mahen?

Hallo zusammen

Ich bin in C# VS relativ neu. Habe ein ca. 3500 Zeilen-Programm mit vielen Klassen etc. gemacht. Funktioniert alles super und ist getestet.

Ca. 80% der Consolen-App habe ich auf dem Mac programmiert, 20% auf meinem Windowsrechner. Ich bin also heterogen unterwegs. Soweit so gut.

Eine .exe kann ich problemlos erstellen. Auf Windows auch entsprechend problemlos auszuführen. Wenn ich das auf dem Mac laufen lassen möchte, mache ich:

  • a) die Konsole auf
  • b) navigiere zur ProgrammXY.dll
  • c) gebe dotnet ProgrammXY.dll ein

und das Ding läuft. Nur!!!!!!!!!!!!..... Das möchte ich so nicht!

Ich habe aktuell den Fall, dass meine Schwester (auch Mac-Anwenderin) genau jetzt die App benötigt. Die Löst ein Problem welche sie (und das ist Zufall des Jahrhunderts) hat.

Ich möchte ihr die Consolen-App analog zu Windows auf einem USB-Stick o.ä. übergeben können, sodass sie mit einem einfachen DOPPELKLICK das Ding starten und verwenden kann. Ich möchte keine UI darum herum bauen und ich möchte nicht ins Web damit. Auch soll sie ihren Rechner nicht fit für dotnet machen müssen. Ich will die App auf der Konsole haben. Sowohl auf Mac als auch auf Windows. Genau gleich einfach.

Nun die Frage:
Kann man das überhaupt? ich finde keinerlei sinnvolle Anleitungen oder Antworten. Bei Stackoverflow werde ich angepöbelt und bei MS selber kann ich im DEV-Forum keine Fragen stellen.

Ich möchte nur wissen ob das überhaupt geht damit ich mit der Fragerei und Suche aufhören kann oder andere Wege / Technologien angehen kann.

Grüsse euch und danke schonmal.

Computer, Technik, programmieren, C Sharp, dotNet, Informatik, Softwareentwicklung, Technologie, konsolenanwendung, Visual Studio 2019
C# StringBuilder Werte separieren?

Folgendes:
Ich möchte aus hostname.DisplayName die 2 Werte (HostName und IP-Addresse) seperat in einem eigenen String haben... leider kommen aus hostname.DisplayName beide Werte gleichzeitig aus...

Wie kann ich diese am besten trennen?

Hier das Ergebnis:

Der Code:

StringBuilder clientListMACAddress = new StringBuilder();
                    StringBuilder clientListHostname = new StringBuilder();
                    StringBuilder clientListIPAdress = new StringBuilder();


                    var currentClients = tetheringManager.GetTetheringClients().ToArray();
                    foreach(var client in currentClients)
                    {
                        //MessageBox.Show(client.MacAddress);
                        //string MACAddress = client.MacAddress;
                        clientListMACAddress.AppendLine(client.MacAddress);
                        foreach (var hostname in client.HostNames)
                        {
                            clientListHostname.AppendLine(hostname.DisplayName);
                            //clientListIPAdress.AppendLine(hostname.DisplayName);
                            
                        }
                    }
                    MessageBox.Show("MAC: " + clientListMACAddress.ToString() + " HOST: " + clientListHostname.ToString() + " IP: " + clientListIPAdress.ToString());

Vielen dank im Voraus :)

Mit freundlichen Grüßen

Bild zum Beitrag
Computer, Windows, Microsoft, C Sharp, Informatik, Visual Studio, .net-Framework, Visual Studio 2019