2016-07-28 4 views
-1

Ich möchte ein Programm schreiben, in dem einige Wörter mit einem anderen verbunden sind. Ein Beispiel ist A geht zu 1 und B geht zu 2. Einige mögen diese Zuordnung nennen. Die Idee, an die ich denke, ist, dass wir das Programm ausführen und irgendwie öffnet das Programm ein Word-Dokument, in dem der Benutzer ändern kann, welches Zeichen oder welche Nummer dem entspricht und danach das Programm aktualisiert, ohne neu kompilieren zu müssen. Ich dachte, ein Wörterbuch zu schaffen:Wie Benutzer Code ohne Neukompilierung des Codes bearbeiten können

Dictionary <string, string> mappings = new Dictionary<string, string>(); 
mappings["A"] = "1"; 
mappings["B"] = "2"; 

Ich weiß nur nicht, wie das Teil zu implementieren, wo das Programm können Sie den Code ändern, ohne neu zu kompilieren. Vielleicht sollte ich das Programm die Mappings bearbeiten lassen?

+9

Warum speichern Sie die Mappings nicht in einer Datei? –

+0

Speichern Sie die Zuordnungen in einer Datei, die der Benutzer bearbeiten kann. Ich kann mir nicht vorstellen, dem Benutzer zu erlauben, Ihren Code zu bearbeiten, der gut für Sie oder den Benutzer endet. –

+0

@ DanielA.White Warum ist das hilfreich und wenn ich das getan habe, gibt es eine Möglichkeit für mich, während der Laufzeit auf die Datei zuzugreifen und Änderungen daran vorzunehmen, ohne den Code neu zu kompilieren? –

Antwort

1

Hier ist ein Beispiel für die grundlegende Datei- und String-Manipulation.

Dies ist ein einfaches Beispiel für Lernzwecke. Es kann einige Dinge wie Zeilenumbrüche oder das Zeichen '=' in einer der Zeichenfolgen, die Sie zuordnen möchten, nicht verarbeiten.

Angenommen, Sie

A = 1
B = 2

Sie könnten Ihr genau die gleiche Wörterbuch mit diesem Code

Dictionary<string, string> mappings = new Dictionary<string, string>(); 

// gets an array lines in the file 
var lines = System.IO.File.ReadAllLines("TextFile1.txt"); 

foreach(var line in lines) 
{ 
    //this gets an array of substrings, seperated by the specified character 
    var vals = line.Split('='); 

    //adds a value to your dictionary 
    mappings.Add(vals[0], vals[1]); 
} 

Wenn Sie eine Datei wie diese hatte machen Möchten Sie die Zuordnungen ändern, ohne den Code zu ändern, müssen Sie nur diese Datei ändern.

+0

Wie würde ich das Programm während der Laufzeit ändern lassen, wenn das möglich ist? –

+0

@newbie_at_linux 'File.WriteAllLines (" TextFile1.txt ", neue Liste {" Line1 "," Line2 "});' –

+0

können Sie mir die Codezeile erklären Ich sehe nicht, wie die Datei währenddessen geändert wird Laufzeit –

Verwandte Themen