Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# Container-Klassen in C# (https://www.delphipraxis.net/103405-container-klassen-c.html)

Luckie 15. Nov 2007 12:47


Container-Klassen in C#
 
Ich will Objekte einer Klasse in einer Liste, Container-Klasse verwalten. Wie es mit Delphi funktioniert, weiß ich: Verwalten von Objekten in einer Container-Klasse nur habe ich keine Ahnung, wie ich das in C# anfangen sollen, was man da als Basisklasse nimmt usw. Wenn mir da jemand etwas auf die Sprünge helfen könnte. Für Komponenten habe ich da, glaube ich, schon was gefunden: http://msdn.microsoft.com/library/de...ccontainer.asp

OregonGhost 15. Nov 2007 12:48

Re: Container-Klassen in C#
 
List<T>?

Luckie 15. Nov 2007 12:53

Re: Container-Klassen in C#
 
Oh Gott, was ist denn das jetzt für ein Konstrukt? Ich habe mit C# so gut wie keine Erfahrung. Ich bitte dies zu berücksichtigen, wenn ihr mir Hilfe in Form von Stcihworten anbietet. Mit
Code:
List<T>
kann ich nämlich irgendwie nichts so recht anfangen.

OregonGhost 15. Nov 2007 12:55

Re: Container-Klassen in C#
 
Verzeihung. Ich war gar nicht sicher, was du genau suchst.

System.Collections.Generic.List<T> (Visual Studio fügt normalerweise automatisch in neuen Dateien ein "using System.Collections.Generic" ein) ist ein generischer Listentyp (also Template-Klasse, je nachdem, welche Bezeichnung du dafür eher kennst). Wenn du also zum Beispiel Control-Ableitungen verwalten kennst, kannst du dafür ein List<Control> nehmen. Die Templateklassen findest du normalerweise in der Hilfe auch mit T als Typangabe, also einfach mal "List<T>" eingeben.

Edit: Der Name trügt übrigens. List ist keine verkettete Liste. Allgemein kannst du dich auch mal in "Collection" einlesen, und in die in diesem Zusammenhang interessanten Interfaces IEnumerable, das u.a. von List<T> und auch normalen Arrays implementiert wird.

Jürgen Thomas 15. Nov 2007 13:37

Re: Container-Klassen in C#
 
Und weil wir uns hier in der DP befinden, vorsorglich noch den Hinweis, dass es generische Klassen, also alles mit <T>, erst ab NET 2.0 gibt. Aber grundsätzlich ist List<T> in der Tat optimal für Listen von speziellen Objekten geeignet.

Gruß Jürgen

OregonGhost 15. Nov 2007 13:40

Re: Container-Klassen in C#
 
Ja, stimmt, Luckie, mit welcher C#-Version entwickelst du denn? Das spielt da natürlich schon eine Rolle :)

Luckie 15. Nov 2007 13:42

Re: Container-Klassen in C#
 
Mit dem VC2008 Beta und dem Framework 3.5.

OregonGhost 15. Nov 2007 13:58

Re: Container-Klassen in C#
 
In dem Fall sind unter Umständen auch die neuen Containerklassen für dich interessant. Die Namen weiß ich nicht so genau. Aber im Zusammenhang mit WPF stößt du da schnell drauf. Die haben standardisierte Interfaces für Änderungsbenachrichtigungen und so Zeugs.

Luckie 15. Nov 2007 14:00

Re: Container-Klassen in C#
 
Ich glaube, ich habe da schon was. Ich poste das dann mal, wenn ich hier fertig bin.

Elvis 15. Nov 2007 14:04

Re: Container-Klassen in C#
 
Zitat:

Zitat von OregonGhost
Aber im Zusammenhang mit WPF stößt du da schnell drauf. Die haben standardisierte Interfaces für Änderungsbenachrichtigungen und so Zeugs.

Gab es bis auf 1 oder 2 Interfaces alles schon in Winforms 2.0.
Am interessantesten wäre da INotifyPropertyChanged in den Datenklassen zu implementieren und als Liste eine BindingList<T> zu nehmen.
Dadurch können die Datenklassen durch die Liste der UI bescheid sagen, wenn sich eine Eigenschaft geändert hat, die BindingList selbst ist außerdem in der Lage, die UI darüber zu informieren, dass Elemente hinzugefügt/entfernt/geändert wurden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz