Laden...

Wo finde ich den Einstieg in C#?

Erstellt von themanfrommoon vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.240 Views
T
themanfrommoon Themenstarter:in
1 Beiträge seit 2018
vor 5 Jahren
Wo finde ich den Einstieg in C#?

Moin,

ich bin ganz neu hier und habe noch keine Ahnung ob ich an der richtigen Adresse bin oder nicht, daher möge man es mir verzeihen, wenn ich hier nicht richtig sein sollte.
Gerne darf der Thread auch in einen besser passenden Bereich verschoben werden.
Gerne nehme ich eure Tipps entgegen wo ich gegebenenfalls besser aufgehoben wäre.

Kurz zu mir und meiner bisherigen Erfahrung:
Ich habe vor 25 Jahren mal einige Spielereien auf nem C64 programmiert und später dann auch in Turbo Pascal.
Sowas wie "Pong" für die die es kennen, oder ein Pixelfeuerwerk, "herunterfallende" Pixel, Langton's Ant und all son einfaches Zeug.
Sowas würde ich gerne wieder just for Fun in Windows machen.
Vor rund 2 Jahren habe ich angefangen mit der Arduino IDE in C++ ein paar Microcontroller zu programmieren und frage damit Sensoren aus meinem Haus ab und speichere diese in einer Datenbank.
Ausserdem steuere ich so ein paar kleine TFT Displays an und stelle dort Daten dar.
Hier mal ein Beispiel, das ich auf einem nodeMCU und einem 4" Display laufen habe:


#include <SPI.h>
#include <TFT_eSPI.h>
TFT_eSPI tft = TFT_eSPI();
byte dir;
byte c;
byte d;
int x[1281];
int y[1281];
int mx;
int my;
int Dr;
void setup() {
  Serial.begin(115200);
  tft.init();
  tft.setRotation(1);
  my = tft.height();
  mx = tft.width();
  Serial.print(my);
  Serial.print(" ");
  Serial.println(mx);
  tft.fillScreen(TFT_BLACK);
  dir = 1;
  x[0] = 0;
  y[0] = 0;
}
void loop() {
  switch (dir) {
    case 1:
      x[0]++;
      break;
    case 2:
      y[0]++;
      break;
    case 3:
      x[0]--;
      break;
    case 4:
      y[0]--;
      break;
  }
  for (int i = 1280; i > 0; i--) {
    x[i] = x[i - 1];
    y[i] = y[i - 1];
  }
  tft.drawLine(x[0], y[0], 240, 160, TFT_RED);
  tft.drawLine(x[320], y[320], 240, 160, TFT_ORANGE);
  tft.drawLine(x[640], y[640], 240, 160, TFT_YELLOW);
  tft.drawLine(x[960], y[960], 240, 160, TFT_GREEN);
  tft.drawLine(x[1280], y[1280], 240, 160, TFT_BLUE);
  if (x[0] > mx - 1) {
    x[0] = mx - 1;
    dir = 2;
  }
  if (x[0] < 0) {
    x[0] = 0;
    dir = 4;
  }
  if (y[0] > my - 1) {
    y[0] = my - 1;
    dir = 3;
  }
  if (y[0] < 0) {
    y[0] = 0;
    dir = 1;
  }
}

Nun möchte ich zunächst das gleiche in Windows in einem Fenster zum laufen bringen, also nicht auf dem nodeMCU mit Display, sondern die Grafikausgabe soll in Windows in einem Fenster sein.
Ich suche da jetzt schon ne kleine Ewigkeit und finde nicht wirklich einen guten einfachen weg. Genaugenommen irre ich noch umher und weiss nicht wie ich anfangen soll.
Ich will einfach nur ein paar Schleifen durchlaufen, und dann mit DrawPixel, DrawLine und DrawCircle und sowas in eine Grafikfenster schreiben.

Später kommen dann noch ein paar Textboxen und Button dazu.
Von der Optik und der Funktionalität soll in etwa sowas dabei herauskommen:
Textboxen, Buttons, einfache Pixelgrafik, usw.
http://1.bp.blogspot.com/-cNEGFjkbjuM/UFxxAxEekdI/AAAAAAAAAF4/vyzLttEG10E/s1600/pid.png
Quelle: http://codermonkey65.blogspot.com/2012/09/basic-control-theory-in-c.html

Nach reichlich Überlegung denke ich, dass C# hoffentlich das richtige dafür ist, denn ich denke das meine letzten 2 Jahre C++ Erfahrung mir dabei weiterhelfen können. Aus Basic, Turbo Pascal und Visual Basic bin ich ja schon eine Weile raus, aber C++ ist ganz aktuell bei mir.

Was ich nicht möchte, vor allem weil ich keine Zeit dafür habe, und dies auch nicht mein angestrebtes Ziel ist: Ich will und werde kein Programmierer werden. Also bitte keine Ausbildung zum professionellen Programmierer anbieten. Das ist nicht mein Ziel. Dafür habe ich als vollberufstätiger Familienvater keine Zeit und das ist auch absolut nicht notwendig. Das C++ Programm da oben habe ich mir auch ohne C++ Grundsatztutorials und ohne C++ Studium zusammengeschrieben. Wenn man weiss was man will und weiss was man fragen muss, dann kommt man auch ohne Studium einer Programmiersprache ganz gut klar. Ich möchte kein professioneller Programmierer werden. Ich möchte nur ein bischen damit rumspielen, in dem oben gesetzten Rahmen. Viel mehr wird es nie werden.

Ich habe bereits Microsoft Visual Studio und und Miscrosoft Visual Studio Code, sowie Qt installiert.
Nun komme ich aber leider nicht weiter.
Könnt ihr mir ein paar Tipps zum starten geben?
Wie gebe ich "Hello World" in einem Windows Fenster aus?
Wie initialisiere ich ein Grafikfenster?
Wie zeichne ich eine Linie von Koordinate 10,10 nach 50,50?
Wie erstellt und benutzt man eine Textbox?
Wie erstellt und benutzt man einen Button?

Ich hoffe sehr dass man mir hier helfen kann.
Ansonsten gerne ein paar Tipps wo man mir helfen kann oder wo ich oben genannte Beispiele finden kann.

.....so schwer kann das doch nicht sein?!

Vielen lieben Dank und morgen ein frohes Weihnachtsfest,
Chris

16.825 Beiträge seit 2008
vor 5 Jahren

Dafür haben wir einen Beitrag in der FAQ, den wir Dir auch bei der Registrierung hier im Forum angezeigt haben (im Rahmen von [Hinweis] Wie poste ich richtig?, das Du bei der Registrierung und vor dem Erstellen des ersten Posts als gelesen akzeptiert hast).
[FAQ] Wie finde ich den Einstieg in C#?

Individuell zu sagen, wer am Besten wie einsteigen soll: das ist nicht möglich.
Deine Fragen sind aber alle durch die ersten Kapitel in den üblichen Tutorials zu erlernen.
Verständnis zu erlernen kann Dir hier keiner abnehmen. 👍

4.938 Beiträge seit 2008
vor 5 Jahren

Hallo,

dann benutze am besten WinForms (anstatt WPF), da die Lernkurve dort nicht so steil ist.
Das ältere OpenBook Visual C# 2008 hat auch noch ein spezielles Kapitel dafür ("13 Grundlagen zum Erstellen einer Windows-Anwendung").

Als weitere Stichworte kann ich dir Form sowie Graphics geben.
Und besonders noch [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox).

Viel Erfolg!