Autor Beitrag
KevinMe
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 06.06.09 17:58 
Hallo Zusammen,

Ich bin gerade dabei mir Silverlight anzueignen und somit auch C#. Ich habe noch keine sehr grossen Programmiererfahrungen (seit einem Jahr Java). Ich habe nun eine sehr grundlegende Frage zu Objekten.

Grundsätzlich will ich eine kleine Applikation programmiere, mit der man Notizzettelchen erstellen kann und dann dort Notizen speichern kann.

Mein Problem: Theoretisch gibt es unendlich viele Notizzettelchen.

Ich habe eine Klasse Notes, mit der man neue Notizzettel erstellen kann. Notizzettel sind abstrahiert als Klasse Note.

Mit der Funktion createNote() will ich neue Note Objekte erstellen:
createNote() {
note1 = new Note("blue", 100, 100);
}

Und mit getText() die Notizen auslesen:
getText() {
return note1.Text();
}

Damit ich in der Funktion getText() auf das Objekt note1 zugreifen kann, muss ich den Namen als Klassenvariable speichern.

class Notes {
Note note1;
.....

Dadurch kann ich ja nicht unendlich viele Objekte erstellen, da ich diese ansonsten alle schon "vordefinieren" müsste.

Hat mir jemand eine Idee, wie ich dieses Problem lösen kann?

Vielen Dank
Kevin
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 06.06.09 18:27 
Hallo Kevin und :welcome:

Anstelle der Klasse Notes wäre wohl eine List<Note> besser geeignet. Oder du machst eine Klasse Notes, in der intern eine List<Note> benutzt wird und die eine Suchfunktion Find() nach dem Namen enthält. In Frage kommt dafür auch ein Dictionary<string, Note>.

Beachte dabei, dass zwischen den Daten (also den Inhalten) und der Anzeige (also den TextBoxen oder RTF-Boxen) zu trennen ist. Du kannst zwar intern mit einer beliebigen Anzahl von Texten arbeiten, aber dem Anwender nicht zumuten, dass er eine beliebige Anzahl von Textfelder gleichzeitig auf dem Formular sieht.

Gibt es einen Grund, den Text nicht als Eigenschaft (Property) mit get/set festzulegen, sondern mit GetText() abzuholen? Zu empfehlen ist wohl auch eine Eigenschaft Name.

Falls du noch keine Literatur hast, verweise ich auf das OpenBook Visual C#.

Viel Erfolg! Jürgen
KevinMe Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 08.06.09 13:55 
Hallo,

Vielen vielen Dank für deine ausführliche Antwort. Ich habe zwar nicht alles verstanden, werde mich darum zuerst mal richtig in C# einarbeiten. Werde mein Notiz Projekt dann wohl zu einem späteren Zeitpunkt wieder aufgreifen =)

Vielen Dank nochmals!

Kevin