Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   C# Collections: Verwalten von eigenen Klassen! (https://www.delphipraxis.net/50903-collections-verwalten-von-eigenen-klassen.html)

Speedmaster 2. Aug 2005 16:15


Collections: Verwalten von eigenen Klassen!
 
Ich stehe irgendwie auf dem Schlauch.

Ich habe eine Klasse Definiert, und diese möchte ich in einem Dynamischen Array ablegen, und dieses Array immer wieder erweitern können.

Da ich wusste das Collections normal dafür da sind soetwas zu machen, suchte ich und fand die CollectionBase. Da ich nicht wusste wie man sie verwendet ging ich auf msdn, und fand einen Artikel über diese Klasse.
Soweit so gut, aber jetzt war ich etwas verwirrt. Den ich möchte mein Array von Klassen keine erzeugten Klassen zuweissen, sondern das Array um einen Eintrag vergrößern, und gleich erzeugen( Mit Parametern ). Da ich von den Möglichkeiten die mir hier offen sind keine Ahnung habe, frag ich hier die .NET Experten unter euch wie man das am besten umsetzt, b.z.w. welche Klasse man dafür verwendet könnte.

Hier der Link zu dem msdn Artikel!

mfg

Speedmaster

Robert_G 2. Aug 2005 20:41

Re: Collections: Verwalten von eigenen Klassen!
 
.Net 1.1 oder 2.0?
Bei ersteren musst du dass für jede Klasse immer wieder neu machen (keine virtuellen Konstruktoren, da keine MetaClasses in C#... :wall: )
In .Net 2.0 kannst du in der WHERE Clause einer generic class angeben, dass der verwendete Typ einen parameterlosen Construtor haben muss, welchen du dann auch verwenden kannst.

In beiden Fällen wird es wohl so enden:
Code:
public virtual T Add()
{
  T result = new T();
  Add(result);
  return result;
}
In .Net 1.1 musst du halt T mit deiner Klasse ersetzen, in 2.0 wäre es einfach der Item parameter deiner generischen Klasse. ;)

btw: für eine strongtyped CollectionBase-Ableitung kannst du das machen:
  • #develop öffnen
  • File\New\New File
  • typed Collection
  • Deine Klasse als Item typen angeben
Jetzt speicherst du die Datei in dein Projekt oder benutzt Copy'nWaste. ;)

Speedmaster 3. Aug 2005 18:11

Re: Collections: Verwalten von eigenen Klassen!
 
Ehrlich gesagt muss ich sagen, das Delphi eigentlich garnicht so komfortabel ist wie es aussieht! Das einzige was Delphi ist, es macht einen Komfortablen eindruck. #develop ist ein tolles Programm stelle ich fest!

Edit: Bis auf ein paar Fehler, muss ich sagen es ist sehr gut!

Robert_G 3. Aug 2005 20:08

Re: Collections: Verwalten von eigenen Klassen!
 
Zitat:

Zitat von Speedmaster
Edit: Bis auf ein paar Fehler, muss ich sagen es ist sehr gut!

Welche Hauptsächlich durch Simmatzes cooles Help AddIn kommen. :mrgreen:
Für C# ist D2005 unerhalb von Architect oder Enterprise verglichen zu #develop wohl mehr ein Spielzeug.
Probiere mal [Alt+Einfg]. :)

@Topic: Kontte ich dir weiterhelfen?

MathiasSimmack 3. Aug 2005 20:12

Re: Collections: Verwalten von eigenen Klassen!
 
Zitat:

Zitat von Robert_G
Welche Hauptsächlich durch Simmatzes cooles Help AddIn kommen. :mrgreen:

Äh, ich habe diese Fehler bei mir nicht. Außerdem ist das ein Problem mit ActiveX/COM. Mein Addin nutzt dummerweise und gezwungenermaßen nur solche gewrappten Controls. Ich kann doch auch nichts dafür. :cry:

Robert_G 3. Aug 2005 20:14

Re: Collections: Verwalten von eigenen Klassen!
 
Ich wollte ja nur provozieren, dass du dich hier ausheulst. Eigentlich wollte ich das böse Spiegelbild meiner Sig unter meiner stehen haben, aber du schaltest sie einfach aus... :cry:

Speedmaster 3. Aug 2005 20:14

Re: Collections: Verwalten von eigenen Klassen!
 
Zitat:

Zitat von Robert_G
Zitat:

Zitat von Speedmaster
Edit: Bis auf ein paar Fehler, muss ich sagen es ist sehr gut!

Welche Hauptsächlich durch Simmatzes cooles Help AddIn kommen. :mrgreen:
Für C# ist D2005 unerhalb von Architect oder Enterprise verglichen zu #develop wohl mehr ein Spielzeug.
Probiere mal [Alt+Einfg]. :)

@Topic: Kontte ich dir weiterhelfen?

Du konntest Helfen, das mit dem Spielzeug merke ich, was mir allerdings doch Fehlt ist die Syncrone Bearbeitung!

Zum Thema, naja ich wollte eigentlich wie gesagt keinen Eintrag hinzufügen oder Entfernen, sondern ein Ersatz für ein Dynamisches Array haben, welches sich einfach erweitern lässt!

Robert_G 3. Aug 2005 20:24

Re: Collections: Verwalten von eigenen Klassen!
 
Die Größe kannst du mit Capacity festlegen.
Willst du Parameter übergeben, erweiterst du meinen Schnipsel um ... :gruebel: ... Parameter. :P

Speedmaster 3. Aug 2005 20:47

Re: Collections: Verwalten von eigenen Klassen!
 
Zitat:

Zitat von Robert_G
Die Größe kannst du mit Capacity festlegen.
Willst du Parameter übergeben, erweiterst du meinen Schnipsel um ... :gruebel: ... Parameter. :P

Das mit den Dynamischen Arrays finde ich ehrlichgesagt an .NET als einzige Sache bisher Lästig, an dem Rest habe ich mich bisher erfreut!

Robert_G 3. Aug 2005 20:53

Re: Collections: Verwalten von eigenen Klassen!
 
Zitat:

Zitat von Speedmaster
Zitat:

Zitat von Robert_G
Die Größe kannst du mit Capacity festlegen.
Willst du Parameter übergeben, erweiterst du meinen Schnipsel um ... :gruebel: ... Parameter. :P

Das mit den Dynamischen Arrays finde ich ehrlichgesagt an .NET als einzige Sache bisher Lästig, an dem Rest habe ich mich bisher erfreut!

War das jetzt ein "So gates, aber es ist lästig" oder eher ein "Es geht schon seit 4 Beiträgen und ist lästig." ? :gruebel:

btw: Was in aller Welt kann lästiger sein als setLength? :mrgreen:

Auch das hier ist NICHT unbedingt effektiv. Wenn du hier ein Größe auf meinetwegen 100 setzt und 10 Aufrufe später doch erweiterst, hast du gegenüber dem normalen Wachstum der ArrayList (auf 172%) nicht viel bis gar nix gewonnen. ;)

Achso... Schaue mal schräg rechts über dem M, da findest du eine Alternative für das "!". :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.

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