Entwickler-Ecke
Andere .NET-Sprachen - Zeiger und .Net
ADis - Do 15.04.04 11:41
Titel: Zeiger und .Net
Hi,
Wie vielleicht schon mancher bemerkt hat gelten Pointer im .Net als veraltet(unsafe) und nicht mehr zulässig.
So nun nach der Frage der Alternative :?
Ich liefere hier mal ein D7 Beispiel:
Es sollen für eine 3 Dimensionale Kurvenberechnung einen Dynamischen Speicher pro datensatz reserviert werden. Um Ressourcen zu sparen und die Programmperfomance zu optimieren denke ich dass statische Speicherreservierung unsinnig ist, denn ich weiß nicht unbedingt wieviel Daten mir die Datenbank für eine bestimmte Kurve liefert.
Delphi-Quelltext
1:
| Pkt : array[0..10,0..10] of ^real; |
Also hier die Deklarierung eines Kurvenpunktes der aus 11x11 Parameter zusammengesetzt wird.
Delphi-Quelltext
1: 2: 3: 4:
| For i := 1 to AnzahlPunkte_X do For j := 1 to AnzahlPunkte_Y do New(Pkt[i,j]); |
Hier kommen dann Berechnungen, Kurvenausgabe, bla, bla ....
Delphi-Quelltext
1: 2: 3: 4:
| For i := 1 to AnzahlPunkte_X do For j := 1 to AnzahlPunkte_Y do Dispose(Pkt[i,j]); |
Und natürlich muss der Speicher wieder freigegeben werden.
Wie meint Ihr soll nach .Net vorgegangen werden um effizient auf Speicher bzw. Dynamischen Variablen zuzugreifen und zu verarbeiten.
Thx 8)
Moderiert von Peter Lustig (15.04.2004, 11:53): Code- durch Delphi-Tags ersetzt
mirage228 - Do 15.04.04 14:49
Titel: Re: Zeiger und .Net
ADis hat folgendes geschrieben: |
Hi,
Wie vielleicht schon mancher bemerkt hat gelten Pointer im .Net als veraltet(unsafe) und nicht mehr zulässig.
So nun nach der Frage der Alternative :?
Ich liefere hier mal ein D7 Beispiel:
Es sollen für eine 3 Dimensionale Kurvenberechnung einen Dynamischen Speicher pro datensatz reserviert werden. Um Ressourcen zu sparen und die Programmperfomance zu optimieren denke ich dass statische Speicherreservierung unsinnig ist, denn ich weiß nicht unbedingt wieviel Daten mir die Datenbank für eine bestimmte Kurve liefert.
Delphi-Quelltext 1:
| Pkt : array[0..10,0..10] of ^real; |
Also hier die Deklarierung eines Kurvenpunktes der aus 11x11 Parameter zusammengesetzt wird.
Delphi-Quelltext 1: 2: 3: 4:
| For i := 1 to AnzahlPunkte_X do For j := 1 to AnzahlPunkte_Y do New(Pkt[i,j]); |
Hier kommen dann Berechnungen, Kurvenausgabe, bla, bla ....
Delphi-Quelltext 1: 2: 3: 4:
| For i := 1 to AnzahlPunkte_X do For j := 1 to AnzahlPunkte_Y do Dispose(Pkt[i,j]); |
Und natürlich muss der Speicher wieder freigegeben werden.
Wie meint Ihr soll nach .Net vorgegangen werden um effizient auf Speicher bzw. Dynamischen Variablen zuzugreifen und zu verarbeiten.
Thx 8)
Moderiert von Peter Lustig (15.04.2004, 11:53): Code- durch Delphi-Tags ersetzt |
in .NET musst du, soweit ich weiss, sog. "delegate" benutzen. Das sind Pointer mit absoluter Typsicherheit. Ich habe mich selbst noch nicht damit beschäftigt, aber in der Hilfe findest du mit Sicherheit ein Beispiel dafür.
mfG
mirage228
Moderiert von DeCodeGuru: Der Moderationstag wurde entfernt. :wink:
Delete - Do 15.04.04 20:10
Titel: Re: Zeiger und .Net
Äh, ich habe das auch mal gemacht und einen freundlichen Hinweis bekommen.
Seitdem nutze ich das [size]-Tag (Größe 10) und das bold-Tag für mein eigenes Moderations-Tag:
Moderiert von mir selbst (heute, jetzt): so geht das ohne Ärger mit den echten Mods zu kriegen
ADis - Fr 16.04.04 08:31
Titel: AW: Zeiger und .Net
Danke für Eure Postings.
@Mirage228: delegate??? ich erzähl mal was die Hilfe schreibt:
Delegaten: Hierbei handelt es sich um eine Datenstruktur, die auf eine statische Methode oder auf eine Klasseninstanz und eine Instanzenmethode dieser Klasse verweist. Also irgendwie doch kein Pointerersatz oder?
@MathiasSimmack: Mit sowas habe ich noch nie etwas gemacht. Könntest Du paar Code-Schnipsel reinstellen, damit ich da mal rumprobieren kann wie die Performance ist?
Danke :wink:
Delete - Fr 16.04.04 10:37
Titel: Re: AW: Zeiger und .Net
ADis hat folgendes geschrieben: |
@MathiasSimmack: Mit sowas habe ich noch nie etwas gemacht. Könntest Du paar Code-Schnipsel reinstellen, damit ich da mal rumprobieren kann wie die Performance ist? |
Das bezog sich auf etwas, das mirage in seinem Beitrag
hatte. Ich hab´ auch erklärt was es war. Mit deiner Frage bzw. dem Thema hier hatte das nichts zu tun. ;)
ADis - Fr 16.04.04 10:51
Hi,
@MathiasSimmack: :oops: War ja klar! Fettnäpfchen Nr. 1 für den Forumsgrünschnabel. Hmm ja ich habe mich auch schon gewundert, weil ich noch nie was (im Bezug auf meinThema) davon gehört hatte. Warscheinlich zuviel Quellcode in letzter Zeit gesehen. Ist der Winter schon vorbei????
Also nichts für ungut.
Jedoch habe ich immernoch keinen guten Ansatz gefunden :cry:
Bis denn
maximus - Fr 16.04.04 11:29
Pointer gibt es in .NET nicht mehr, wie du sicher schon festgestellt hast. Nimm doch statt dessen ganz normale referenzen (var x:TObject;)! IMO sind singles und alles andere in .NET sowieso objekte...viel mehr kann ich momentan auch nicht sagen :roll:
ADis - Mo 24.05.04 20:15
Titel: Zeiger und .Net (Problem gelößt)
Wenn es keine Pointer mehr gibt dann geht es eben so...
Dynamische Array's
Deklaration:
Delphi-Quelltext
1:
| Dyn_Array: array of integer; |
und dann später in Eurem Quelltext:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| SetLength(Dyn_Array,Length(Dyn_Array)+1); ... Dyn_Array [High(Dyn_Array)] :=Wert; ... for i:=Low(Dyn_Array) to High(Dyn_Array) do begin bla bla end; |
Das ganze geht natürlich auch mit mehreren Dimensionen. siehe Delphi Hilfe "Multidimensional dynamic arrays".
Viel Spass beim proggen 8)
Anonymous - Mo 24.05.04 21:10
[OT]
Müsste das nicht Array's heißen? Ich glaube seid anfang diesen Jahres ist dass Standart. :autsch:
ADis - Mo 24.05.04 22:37
Servus,
klar ist das "Standart" jedoch wollte ich speziell auf die Low() und High() Funktion aufmerksam machen, weil jeder von uns war mal Grünschnabel :roll: in Delphi. hehe
Keep rocking
Christian S. - Mo 24.05.04 22:40
(1) Es war die Rechtschreibung gemeint.
(2) Es ist Standard, wenn wir schon dabei sind. ;-)
ADis - Mo 24.05.04 22:49
Ich Maschbaustudent also nix gut Deutsch. Aber haste recht, den Deutschdebugger sollte mal auf .NET umgestellt werden. :idea:
Aber Papa hast ja recht ich hocke mich jetzt hin und schreib erst mal ein Übungsdiktat.
Grüße aus Bayrischen 8)
Anonymous - Di 25.05.04 13:59
Tut mir leid aber diese ganzen sinnlosen Apostrophe, diesen Jahres, Standart, usw. geht einem mit der Zeit ganz schön auf den Senkel :P
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!