Zum Inhalt springen

lbm1305

Mitglieder
  • Gesamte Inhalte

    373
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von lbm1305

  1. Musst Du ein Char-Array benutzen? Denn der Code ist für das Ergebnis viel zu lang. Anlehnend an den Code von Klotzkopp: string value = "00170"; int result = int.Parse(value); // 170 // Besser wäre hier vielleicht die TryParse() Methode. .. Console.WriteLine(result.ToString()); // 170
  2. In Deinem ersten Post steht aber nichts von "soll in ein Char-Array" umgewandelt werden. Die Antwort für Dein Problem findest Du in den darauf folgenden Antworten. Ansonsten ist ein String ein Char-Array string a = "Hallo Welt"; char a1 = a[0]; // H char a2 = a[1]; // a
  3. Hmm...bin da anderer Meinung. Nehmen wir an, die Anwendung ist für alle möglichen DBMS ausgelegt, dann bringt mir (N)Hibernate recht wenig. Da würde ich es vorziehen, die reine BusinessObjekt zu schreiben und diese dann im DataLayer nochmals zu mappen. Hatte dazu auch mal einen Webcast von Dariusz Parys gesehen, wo er dies selbst praktiziert bzw. erwähnt.
  4. Die Validierung bei WindowsForms-Anwendungen müsste in der UI-Schicht passieren. z.B. bei LostFocus() einer Textbox. Es wäre aber auch möglich, die Validierung im Business-Objekt (BusinessLayer) durchzuführen und den Fehler wieder an die UI zurück zu melden. Lösungen zum Anzeigen von Fehlern sind der ErrorProvider oder eine MessageBox, wenn der Benutzer z.B. auf Speichern klickt. Es gibt da aber kein Patentrezept. Business-Layer und Datenbank-Layer dürfen keine MessageBoxen etc. auslösen. Dies ist der UI-Schicht vorbehalten.
  5. Eine Aufteilung auf 3 Layer ist schon sinnvoll. Hier hast Du eine Übersicht zu einer DemoApp für .NET Layered Architecture Sample for .NET Der DataLayer führt die eigentlichen Abfragen aus und liefert die Daten als Aufzählung zurück. D.h. auch, dass der DataLayer zum Speichern ein Objekt übergeben bekommt, welches persistiert werden soll. Die Businesslogik (BusinessLayer) verarbeitet dann diese Objekte und kommuniziert mit der UI (PresentationLayer). Die Services sind nicht unbedingt von nöten.
  6. Zum Thema Clean-Code: Du solltest zuerst zwei Prinzipien kennen: Single Responsibility Principle Open-Close Principle SRP bedeutet, dass jede Klasse nur einen Grunde haben sollte, verändert zu werden. Bspw. eine Klasse, die eine Connection herstellt, eine Abfrage gegen eine Persistenzschicht fährt und dann noch die Daten aufarbeitet entspricht nicht dem SRP. Daher solltest Du darauf achten, dass Klassen nur eine Aufgabe haben. Dementsprechend sollte auch jede Methode / Funktion einer solchen Klasse nur eine Aufgabe wahrnehmen. Das Open-Close Prinzip sagt nichts anderes, dass eine Klasse für Veränderungen geschlossen ist, für Erweiterungen aber offen. Beispiele findet man zu Hauf im Netz. Einfach mal nach SOLID (jeder Buchstabe ein Prinzip) suchen. Ansonsten kann ich die Seite clean-code-developer empfehlen.
  7. Klingt eher nach Klassen und Methoden. Am besten das Kapitel 3 von Galileo Computing :: Visual C# 2008 -- Das umfassende Handbuch anschauen. :roll:
  8. Moin, ich hatte mal ein Projekt, in dem ein Barcode-Scanner eingesetzt wurde. Für diesen Scanner gab es bereits fertige DLL's, die dann nur noch referenziert wurden.
  9. Eventuell solltest Du die Klasse StringBuilder für die Addition von Zeichenketten verwenden.
  10. Neues Problem -> neuer Thread (neues Thema)
  11. TimeSpan kennt die Methoden Parse() und TryParse().
  12. Dann musst Du diese Eingaben persistieren. Siehe zweiten Post.
  13. lbm1305

    Mehrere Boolean Werte

    Noch eleganter wäre die Anwendung des "Chain of Responsibility"-Patterns :-O
  14. Eine ArrayList nimmt alle Elemete auf, die vom Typ "Object" sind oder abgeleitet wurden (string, int aber auch eigene Datentypen). Das ist aber auch schon der Vorteil. Zum Auslesen musste Du zur Laufzeit den eigentlichen Datentyp bestimmten und in diesen Casten. Eine generische Liste kann nur den angegebenen Datentyp aufnehmen. (List<string>, List<int>, List<Person>. Damit entfällt das Casten beim auslesen und es können nur diese Datentypen aufgenommen werden. Es spart ein wenig Zeit, wenn man nicht casten muss. :-)
  15. lbm1305

    [Vb.net] GUI Frage...

    Moin, also wenn ich es richtig verstanden habe, dann sollte Dir ein bzw. mehrere Panel helfen. Panel-Klasse (System.Windows.Forms)
  16. Moin, anstatt einer ArrayList würde ich eine Generische Liste (List<T>) verwenden, wenn es sich um den gleichen Datentyp handelt, den den Liste verwalten soll. Bei einer ArrayList müsste man noch Casten.
  17. Du könntest den Weg über eine eigene Collection gehen. Wobei auch List<Person> funktionieren sollte. public class PersonList : List<Person> { } Dann einfach den Typ im XmlSerializer angeben: XmlSerializer serializer = new XmlSerializer(typeof(PersonList));
  18. Sauberer Code heißt nicht gliedern mit Hilfe von #region. Die ClickHandler Methode hat, nach erstem Überfliegen, mindestens 7 Aufgaben. Jede Methode sollte eine Aufgaben haben. Aber da es eh nur zum Testen war. ;-)
  19. ?? Wenn ich nach "Clean-Code" gehen würde, erschlägt einem dieses Konstrukt :roll: :-)
  20. lbm1305

    Primzahlen erkennen

    Weil ich den Algorithmus irgendwo in meine Verzeichnissen gefunden habe und dann einfach nur kopiert habe. Vor ein paar Jahren war das erst Mal ausreichend. ;-)
  21. lbm1305

    Primzahlen erkennen

    Hier mal eine andere Vorgehensweise. Ohne große Berechnung. int eingabe = 26; bool[] prim = new bool[eingabe]; for (int i = 2; i < eingabe; i++) { prim[i] = true; } for ( int i = 2; i < eingabe; i++ ) { if(prim[i]) { Console.WriteLine(i); for (int j = i+i; j < eingabe; j=j+i) { prim[j] = false; } } } Kann man überhaupt einen bool-Array mit true initialisieren?
  22. Moin, eine Frage noch: Wie hast du die DataTable an den View gebunden? Eventuell würde der SelectionMode des DataGridView's helfen: DataGridView.SelectionMode-Eigenschaft (System.Windows.Forms)
  23. Eben nicht. Was ist, wenn ich einmal die Methode für eine Konsole und dann wieder für eine Windows-Forms Anwendung benötige? Es gibt ein Prinzip, dass da heißt. "Don't repeat yourself". Wiederhole dich nicht. Mach eine Methode daraus, die unabhängig des benutzen UserInterfaces ist. PseudoCode: public bool IsLeapYear(int year) { .. }
  24. Einsicht ist der beste Weg zur Besserung. ;-) Eventuell solltest Du Deine Methode (Funktion) schreiben, dass diese in jeden System genutzt werden kann. Derzeit kann ich Deine Formel nur in einer Konsolen-Anwendung nutzen. Tipp: Nutze bitte die Code-Tags. Damit lässt sich der Code besser lesen.
  25. Moin, Und schon muss er eine Datenbank erstellen ?! So etwas würde ich vielleicht in Erwägung ziehen, wenn der Benutzer sein Kunstwerk abspeichern möchte. Aber selbst da würde ich eine XML-Datei vorziehen.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...