Ich bräuchte mal etwas konstruktive Kritik

cosmochaosmaker hat gesagt.:
Sag ich doch. :D
Und unterstelle mit bitte nicht das ich Exceptions als Programmflusssteuerung
(Scheiss neue deutsche Rechtscheibung) verwende.
Das geht aus meinen Vorschlägen nicht hervor. Dessen bin ich mir sicher.
Ich mache Vorschläge zur Abhandlung derer. Das man auf alles mit Logik prüfen muss ist mir klar.
Da waren wir uns sogar einig.
[thread=162023]Codenavigation durch Exceptions? - Thread[/thread]
Wenn ichs nicht verstanden hab, das zeig es mir bitte. Vielleicht versteh ich's ja doch nicht.
Du weisst ich hab damals auch ganz schön triviale Schwierigkeiten, wie der Revent hier gehabt.

Ich unterstelle nichts. Das waren wertfreie Aussagen von mir, die alle zu Herzen nehmen sollten. Sonst nichts. Musst dich also nicht persönlich angegriffen fühlen ;)
 
Hallo Leute,
mit die RescourceExist() Funktion ist unglücklich, ich habe sie entfernt.
Da habt Ihr recht.
Die andere Funktion ist in der Form mit drin und Du hast recht ob ich in der Funktion oder in der Form eine MessageBox zeige ist dann schon fast egal.
Wie ist das mit einer Klasse in der ich alle Funktionen rein packe die ich für das Programm brauche oder soll ich sie lieber in der Form belassen?
Ich könnte dann ja auch alle globalen Variablen mit in die Klasse packen.
Ok dann wäre das alles schön getrennt und der Code liest sich dann vielleicht besser.
Was meint Ihr?
 
Du arbeitest mit C# und nicht in VB :) Daher solltest du dich um die Grundsätze der OOP kümmern bzw. dich da einfach mal einlesen.

Wichtig ist, dass du deinen Code von der Darstellung trennst. D.h. keinen Code in deiner Form. Ausser dem Aufruf deiner Objekte und das Anzeigen der Ergebnisse.

Gliedere deinen Code in Klassen aus. Und zwar nicht alle deine Methoden in eine Klasse, sondern getrennt nach Aufgabenbereich.
 
Hallo Norbert,
hast Du den ein gute Lektüre über OOP.
Und was meinst Du mit
Du arbeitest mit C# und nicht in VB

Wichtig ist, dass du deinen Code von der Darstellung trennst. D.h. keinen Code in deiner Form.
Heißt das beim aufruf von Button_Click eine Funktion in einer Klasse aufrufen in der dann das gemacht wird was eigendlich in Button_Click geschehen würde.

Was hat das für ein Vorteil?
bis Dann
 
Reverent hat gesagt.:
hast Du den ein gute Lektüre über OOP.
Zu OOP gibts genug im Netz. Einfach mal suchen. Ein Einstiegspunkt wäre zb:
http://en.wikipedia.org/wiki/Object-oriented_programming

Reverent hat gesagt.:
Und was meinst Du mit
Das soll heissen: Nutz die OOP und nicht so einen Wurschtelcode wie unter VB.
Reverent hat gesagt.:
Heißt das beim aufruf von Button_Click eine Funktion in einer Klasse aufrufen in der dann das gemacht wird was eigendlich in Button_Click geschehen würde.
Genau. Wobei bitte nicht von einer Klasse auf die Form zugreifen. Mach das über Rückgabeparameter, Structs etc.

Reverent hat gesagt.:
Was hat das für ein Vorteil?
* Code getrennt von der Visualisierung, d.h. du kannst zb ohne viel Aufwand das Frontend austauschen
* verbesserte Wartbarkeit
* eine bessere Übersicht
* usw.
 
Reverent hat gesagt.:
Und was meinst Du mit

Zitat:
Du arbeitest mit C# und nicht in VB
Das schau: [thread=213922]net und seine Probleme. -Thread[/thread]
Reverent hat gesagt.:
Was hat das für ein Vorteil?
Abläufe sollten immer getrennt sein. Das ist wichtig damit das Programm übersichtlich bleibt.
Wie Du das machst bestimmt dein Verständniss für die OOP.
Und nur wenn Du regelmäßig proggst, bekommst Du eine abstrakte Denkweise Die es Dir ermöglicht,
mit dem Verständnis der OOP, Abläufe im Kopf vorzustellen zu trennen und zu ordnen
und dann erst in Objekte zu implementieren.
Du schießt dir immer in den Fuß, wenn Du einfach mal so was implementierst!
Hier hast Du ein Statement aus unserem CodersTalk die Dir die Vorgehensweise von Softwareentwicklung aufzeigt:

[post=1073191]Ablauf Softwareentwicklung in Stichworten[/post]

Ein besseres könntest vielleicht sogar vom Norbert kriegen.

@:Norbert
Norbert Eder hat gesagt.:
Von euch hat niemand den Sinn und Zweck von Exceptions verstanden, oder?
Krass, das Du gleich zu den Mitlesenden sprichst hätt ich nicht gedacht.
Hab Dich falsch verstanden. :)
 
Hallo Leute,
kannst du da bitte noch mal genauer drauf eingehen, bitte:
Zitat von Norbert:
Wobei bitte nicht von einer Klasse auf die Form zugreifen. Mach das über Rückgabeparameter, Structs etc.
Ich habe da eine Button_Click Funktion in der rufen ich dann die auszuführende Funktion auf z.B. myClass.Button_Click().
Dann ist doch der Weg von der Form auf die Klasse oder so ist es dann doch richtig oder.
In myClass.Button_Click() wird dann was ausgeführt und über einen z.B. boolschen Wert kann ich dann in der Form erfahren ob die Aktion erfolgreich war.
Ist das so gemeint?
Bis Dann
 
Nicht ganz.

In dein Form gehört nur was zum Form gehört.
Quasi Code der was mit deinem Form macht.
Wenn Du benutzerdefinierte Controls erstellen willst musst eine Klasse vom Typ des
Controls ableiten und den Code dafür darin implementieren. --> OOP

Alles andere, also die Ausführende Schicht packst Du in Klassen die Du letztendlich,
mithilfe des Forms und deinen Controls steuerst.
Norbert Eder hat gesagt.:
* Code getrennt von der Visualisierung, d.h. du kannst zb ohne viel Aufwand das Frontend austauschen
* verbesserte Wartbarkeit
* eine bessere Übersicht
* usw.
 
Hallo Leute,
ok das habe ich kapiert.
Ich meinte jetzt ich ziehe mir z.B. ein Button auf die Form.
Der soll bei Betätigung alle Primzahlen bis eine Million errechnen und mir die dann z.B. in einerListBox darstellen.
So, die Berechnung kann
1. direkt in der Button_Click Funktion geschehn.
2. in einer Funktion z.B. void Rechnen() geschehn, diese sich jedoch noch auf der Form befindet.
3. kann wie bei 2 geschehn, nur mit dem Unterschied das die Funktion in eine Klasse ausgelagert wird.

Und mit der dritten Methode hätte ich dann den Code von der Visualisierung getrennt.
Ich bräuchte dann z.B. noch eine Funktion die mir die ListBox füllt, richtig.
Bis Dann
 
Hey hey, hier kann man ja richtig was lernen.
Ich poste mal, wie ich das machen würde und ihr sagt dann einfach, ob das so passt.
Code:
private void button1_Click(object sender, System.EventArgs e)
{
	double[] prims = MyMath.ComputePrimes(1000000);
	listBox1.DataSource = prims;
}

MyMath wär jetzt eine von mir geschriebene Klasse, mit der statischen Funktion ComputePrimes, derer ich die Höchstzahl, zu der ich errechnen will, mitgebe.

mfg broetchen
 
Zurück