Übungen zu C#?

splat

Erfahrenes Mitglied
Hallo liebe C# Gemeinde :)

ich bin hier gerade dabei mich in C# .NET einzuarbeiten. Mit PHP, RoR und SQL habe ich schon Jahre zu tun, wobei es dort allerdings größtenteils nur um Web-Programmierung ging.
Einige Bücher von MS Press habe ich bereits hinter mir, doch mit den Aufgaben lässt es sich meines Erachtens nicht sehr gut üben.. Etwas produktiveres würde mir dabei schon etwas mehr Spaß machen, als immer nur kleine Projekte, die man danach wieder weg wirft.. Könntet ihr mir denn ein kleines Projekt empfehlen? Vielleicht etwas mit Windows Forms als Client und einem Webservice? Eine kleine Applikation die man eben schon immer mal gebrauchen konnte :) Kann auch ruhig etwas anspruchsvoller sein.. aus Problemen lernt man ja bekanntlich am besten :)

Viele Grüße
Marc
 
Da gibts wirklich vieles, wobei das meiste allerdings nicht gut zu gebrauchen ist. Du könntest aber z.B. einen Taschenrechner basteln, mit +, -, * und /, und diesen dann über ein TrayIcon laufen lassen. Wäre sicher mal was anderes. Ein TrayIcon ohne Form anzeigen zu lassen ist schon etwas speziell, aber es gibt irgendwo auf Codeproject ein Beispiel dazu.
 
Hi,

Ja, irgendwie gibt es nicht wirklich etwas nützliches bei den Übungen.
Oftmals braucht man irgendwelche nützlichen Tools.. aber genau jetzt fällt mir natürlich nichts ein.
Naja, ich habe mal einen solchen Rechner programmiert (Anhang).
Ist aber noch sehr verbesserungsbedürftig :D

Gruß
Marc
 

Anhänge

  • Rechner.zip
    9,1 KB · Aufrufe: 812
Da fällt mir noch was ein: der Binary Reader. Das ist eine kleine Anwendung, die ich mir selbst geschrieben habe, um Dateien binär auslesen zu können, dabei kann man bei der ausgabe der Bytes zwischen Binär, Dezimal und Hexadezimal umschalten. Leider ist er zu groß zum Upload (da ist noch allerlei Zeugs mit drin was eigentlich nicht notwendig gewesen wäre, aber mir war danach :) ). Das Ding ist machmach ganz nützlich.

Zum Rechner: ich würde beim minimieren Form.Hide() aufrufen, und beim Doppelklick auf das TrayIcon den Rechner wiederherstellen (Form.Show()). Was macht eigentlich das < Zeichen bei den Buttons :confused: Und noch was: wie hast du das mit den Zahlen hinzufügen gemacht? Mit sender, oder für jeden Button eine Funktion getippt?
 
Wenn du magst, kannst du mir den Binary Reader ja mal zukommen lassen :) Hört sich gut an.

Zum minimieren und wiederherstellen benutze ich doch Form.Hide() bzw Form.Show(). Oder was meinst du genau? Das "<" Zeichen ist der "undo" Button zum entfernen der letzten eingegeben Zahl.

Wie meinst du das mit dem Sender?
Habe wohl die aufwändigere Variante gewählt.. jeder Button hat bei mir seine Click Methode.

Gerade fiel mir auf das ich den "Komma" Button vergessen habe.. :rolleyes:
 
Also wenn ich das Fenster minimiere, dann wird es in die untere linke Ecke verschoben, und zusammengeschoben. Vielleicht kannst du da ja nochwas machen.

Wenn ein Event ausgeführ wird, dann werden diesem 2 Parameter übergeben. 1. object sender und 2. EventArgs e (bzw. ein Objekt dass davon erbt). object sender ist das control, dass das Event ausgelöst hat. Du kannst also statt für jede Zahl ein Event zu schreiben, jedes ButtonClick Event des Buttons mit derselben funktion verbinden, und statt der Zahl die du sonst verwendest

Code:
Convert.ToInt32(((Button)sender).Text);

einsetzen. Dabei wird sender in ein Button konvertiert (da es ja erstmal ein objekt ist), und dann die Text eigenschaft in einen Int wert umgewandelt. Dann sparst du recht viel Code, und das Programm ist einfacher zu warten, da du ja die änderungen nur einmal machen musst.
 
ja, stimmt... habe schon ein ganzes Stück Code gespart.
Das ganze mit dem Minimieren habe ich mal so geändert:

Code:
        protected override void OnResize(EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.Hide();   
                this.WindowState = FormWindowState.Normal;             
            }
        }

Weiß nicht ob das die optimale Lösung ist. Aber scheint so zu funktionieren :) Und wieder etwas gelernt.
 

Anhänge

  • Rechner.zip
    7,3 KB · Aufrufe: 240
Zuletzt bearbeitet:
Schönen guten Mittag,

werde mal ein wenig Leichenexhumierung betreiben, da ich mich gerade mit diesem Programm beschäftige.

Kurzer Vorschub noch: Ich befinde mich gerade erst in der Einarbeitungszeit in C#, meine Lösungen sind somit vielleicht nicht ideal.

Falls du, splat, das noch liest: Dein Code verursacht nun, dass das Programm beim Drücken des Minimierungs-Buttons verschwindet (Hide). Da man nun nicht mehr an das Programm herankommt und es im Hintergrund weiterläuft, denke ich nicht, das dies dein Ziel war.

Zudem sind mir einzelne Fehler aufgefallen:
1. Dein "<"-Button bewirkt die Löschung der letzten Zahl. Funktioniert wunderbar, allerdings nur einmal, das ist wohl nicht das gewünschte Ergebnis?!
2. Weiterführende Rechenoperationen sind nicht möglich. (3*3 funktioniert, wenn man aber nun zum Beispiel "+", "4" und "=" drückt, passiert jar nüscht!)

Geht das mit einer einfachen while-Schleife mit einer Bedingung? (zB Solange C nicht gedrückt wurde, warte auf Eingabe?)

Werde mich jetzt mal in den Code reinlesen und würde dann gerne Lösungsvorschläge vergleichen, falls jemand Lust hat, hier einzusteigen.

Der Code ist mit .Net Reflector auslesbar aus der .exe rauslesbar.

Schöne Grüße,
Kevin
 
Nachtrag (erst nun angemeldet, somit hat Edith heute Feierabend):

Die Hide-Funktion macht natürlich nur beim Debuggen Probleme, ansonsten taucht das Icon in Windows brav auf.

Lg
 
Ich habe eine schöne Aufgabe an deren Bewältigung ich mich auch mal wieder versuche:

Ein Taschenrechner(sehr originell, ich weis) der folgende Funktionen beinhaltet:

- Addition, Subtraktion, Division, Multiplikation, Radizierung n-ten Grades, Potenzierung n-ten Grades, +/- Tausch, Löschen des letzten Zeichens, Löschen aller Zeichen, Umwandeln in : Oktal, Hexadezimal, Binär und Dezimal(von allen in alle), Anzeige der geschriebenen Funktionen als Historie:

3 + 3
6 + 5
11-10
1

soweit fürs erste :D

Gruß

d34dr
 

Neue Beiträge

Zurück