Hallo,
ich habe eine Funktion, die ein Array übergeben bekommt und mit den einzelnen Elementen weiterarbeiet.
Bei einem Aufruf benötige ich aber nur die ersten beiden Elemente des Arrays. Gibt es eine Möglichkeit es zu bewerkstelligen, dass ich nur diese Elemente übergebe ?
Funktion
private void drawBez(int n, float[] P1, float[] P2, float[] P3) {
Graphics g = this.CreateGraphics();
Pen p = new Pen((Color.Red),3);
if (n==nMax) {
g.DrawLine(p,P1[n-1],P1[n],P2[n-1],P2[n]);
g.DrawLine(p,P2[n-1],P2[n],P3[n-1],P3[n]);
}
Aufruf
drawBez(n,P1,P2,P3);
Nun würdde ich gern sowas tun
drawBez(1,P1[0,1],P2[0,1],P3[0,1]);
d.h. nur die ersten beiden Elemente übergeben. Funktioniert das irgendwie ?
Gruß
Hallo indeopax,
zuerst einmal sieht dein Code grausig aus. Parameternamen schreibt man in C# eigentlich klein und gibt Ihnen aussagekräftige Namen. Aber das nur am Rande.
Zu deinem Problem: Mach dir doch einfach ein neues Array, in die du nur die ersten beiden Elemente hineinschreibst, und das gibst du dann in deine Funktion.
Das sind aber, wie so oft, Grundlagen.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo indeopax,
warum willst du die Übergabe beschränken? Ein Array wird immer per Referenz übergeben und daher ist es für die Performance vollkommen egal, wieviele Elemente es enthält. Ein Umkopieren in eine kleineres Array ist also nicht nur nicht nötig, sondern wäre in dieser Hinsicht sogar kontraproduktiv.
Sollte das wirklich der Hintergrund deiner Frage gewesen sein, beachte bitte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
Wenn es einen anderen Grund gibt, nenne diesen bitte.
herbivore