C# - Code zusammenstückeln?

...komplette Frage anzeigen

3 Antworten

In der IDE von Visual Studio kannst du mit Strg+J die Wortergänzung aufrufen.

Wenn du Strg+J nach einem Whitespace (z. B. Leerzeichen) verwendest, bekommst du die Auswahl aller Schlüsselworte, die an dieser Stelle gültig sind.

U. A. bekommst du da Schlüsselworte angezeigt, die Codeabschnitte darstellen. (Bei mir als schwarz umrandetes Rechteck mit Schatten dargestellt.)

Wenn du so eins auswählst (mit Pfeiltasten/Bild auf/ab, Mausrad und linke Maustaste, ...) und zweimal die Tab-Taste drückst, fügt die IDE den Rahmen des Codeabschnittes ein.

Nachteil: Du bekommst wirklich alles angezeigt, nicht nur das, was für eine Anfängerübung relevant ist.

Wo ist das Problem? Kannst zB

for(int i = 0; i < myNumericUpDown.Value; i++)

schreiben. (Hoffe .Value stimmt auch...)

Was du daraus in eine foreach-Schleife packen willst ist mir leider schleierhaft...

Crysali 08.11.2016, 21:00

Habe gemerkt, dass meine Frage zu grob ist, bitte verzeih.

Es geht darum, dass ich gerne eine Klasse generieren lassen möchte, die aus Code besteht, die der Nutzer vordefiniert. Er kann also auswählen, was reinkommt, ohne selbst irgendetwas schreiben zu müssen, ähnlich Templates mit sehr vielen Kombinationsmöglichkeiten.

0
triopasi 08.11.2016, 21:19
@Crysali

Aber der Benutzer generiert keinen Code sondern die tatsächliche Klasse oder nur eine Instanz?

1
Crysali 08.11.2016, 21:45
@triopasi

Er generiert eine tatsächliche Klasse, die als Datei zu finden ist. Ich versuche, ein gutes Beispiel zu finden, mir fällt aber spontan nichts ein, entschuldige.

Allgemein, der Nutzer kann aus Fällen wählen, beispielsweise A, B und C. Wenn er A wählt, wird beispielsweise eine Update() in die zu generierende Klasse hinzugefügt, wenn er B wählt, dann wird FixedUpdate() und wenn er C wählt keine.

So sollte das für alles funktionieren, der Nutzer gibt Parameter vor, was die Klasse enthalten soll und daraus wird die zusammengepuzzelt.

0
triopasi 08.11.2016, 21:57
@Crysali

Wieso brauchst dud as? Eine Klasse die das macht reicht doch - und dann ggf. über den Konstruktor einige Sachen "deaktivieren"? Warum willst du ne Klasse generieren? Die Datei sit kein Problem aber ich heme an du willst das auch dann in dem Projekt nutzen oder wie?

0
Crysali 09.11.2016, 17:30
@triopasi

Die Möglicheit, mit If oder Switch zu arbeiten, wieLeonardM vorschlägt, ist mir klar, dann habe ich doch aber allen Code in meiner Klasse und ich habe mich gewundert, wie ich den Code so "zusammenschmelzen" kann, dass ich explizit nur das habe, was ich in einer bestimmten Klase brauche, aus einer benutzerdefinierten Auswahl.

0
Crysali 11.11.2016, 13:45
@triopasi

Schau mal bitte oben, meinen neuesten Kommentar zu LeonardM, möglicherweise hilft der...

0
TeamSmartHD 08.11.2016, 21:07

N'Abend kann wer von euch mir ein gefallen tun?

0

Nen beispiel mit ner textbox und buchstaben a und b

if(textBox1.Text == "a")
{
//code
}

if(textBox1.Text == "b")
{
//code
}

LeonardM 09.11.2016, 07:23

wenns viele Möglichkeiten gibt kannst du auch switch&case verwenden. ist schöner fürs auge

0
Crysali 09.11.2016, 17:31

Danke, If und Switch sind mir bekannt, ich habe mich allerdings gefragt, wie ich eine Klasse generiere, als eigene Datei, die den Code dann auf das zusammenschmelzt, was ich auch tatsächlich brauche. Stell dir vor, du hast tausende Linien Code, von denen du aber nur 100 benutzen willst, nicht nur Fälle, wie in Switch, sondern auch Methoden und Variablen.

0
LeonardM 09.11.2016, 19:53

ich verstehe die frage nicht so recht.. gehts dir tatsächlich darum deklarationen & definitionen von funktionen und klassen etc zu erstellen inputabhängig? warum denn nicht lieber nen funktionsaufruf etc?

1
Crysali 11.11.2016, 13:44
@LeonardM

Ich verstehe den Schritt von Parameter, also Inputabhängigkeit, zu dem Code nicht. Klar, wenn der Nutzer einen Button drückt oder etwas aus einem Dropdown auswählt, dann hat man da Parameter, die man benutzen kann, also If, Switch und Funktionen. Ich würde aber gerne anhand der Paramter eine Klasse generieren, die dann nur aus dem Code besteht, der sonst über If und Switch gefiltert werden müsste, also ohne den Code, weil sich die Paramter nicht ändern, nachdem der Nutzer sie eingegeben hat ( bewusste Designentscheidung).

0
LeonardM 11.11.2016, 14:52

wenn die entscheidung tatsächlich so gewollt ist dann nochmal die rückfrage wo genau das problem ist

0
Crysali 12.11.2016, 20:34
@LeonardM

Ich möchte am Ende nicht if oder switch benutzen, sondern eine Klasse haben, die zwar aus vorherigen Auswahlmöglichkeiten, also if und switch über Userinput, besteht, die aber die Auswahlmöglichkeiten, die nicht genutzt werden, auch nicht enthält.

0

Was möchtest Du wissen?