Guybrush Threepwood Geschrieben 8. November 2006 Teilen Geschrieben 8. November 2006 Ich hab in meiner Klasse ein Array z.b. private int[] iArray; [/PHP] Jetzt möchte ich einen Getter und einen Setter dafür Schreiben wobei man mit dem Getter das gesamte Array zurückbekommt, mit dem Setter aber nur ein einzelnes Element in dem Array ändern kann. Der Getter ist ja kein Problem, nur wie mache ich das beim Setter :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusLe Geschrieben 8. November 2006 Teilen Geschrieben 8. November 2006 Hallo Pirat, Du kannst entweder inen indexer auf die komplette Klasse legen, oder eine Setter Methode anlegen. public DingsDa this[int index] { set { array[index] = value; } get { return null; } } oder public void SetArrayValue(int index, DingsDa value) { array[index] = value; } einen einzelnen Setter kannst Du leider nicht mit einem Index versehen. MfG Markus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 8. November 2006 Autor Teilen Geschrieben 8. November 2006 oder eine Setter Methode anlegen. hab ich befürchtet das ich es so machen muss, aber danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 8. November 2006 Teilen Geschrieben 8. November 2006 Der Getter ist ja kein Problem, nur wie mache ich das beim Setter :confused: Unter der Annahme, dass Du keinen Indexer möchtest: Wenn es darum geht ein beliebiges, vom Aufrufer angegebenes Element des Arrays mit einem neuen, ebenfalls vom Aufrufer anzugebenden Wert zu versehen, dann kannst Du das nicht über ein "set"-Property lösen, denn Du benötigst neben dem Wert noch mindestens die Index-Position im Array. Du kannst aber ganz normal eine Methode schreiben, die einfach den entsprechenden Wert mit einem angegebenen Index ins Array schreibt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Argbeil Geschrieben 10. November 2006 Teilen Geschrieben 10. November 2006 Ich hab in meiner Klasse ein Array z.b. private int[] iArray; [/PHP] Jetzt möchte ich einen Getter und einen Setter dafür Schreiben wobei man mit dem Getter das gesamte Array zurückbekommt, mit dem Setter aber nur ein einzelnes Element in dem Array ändern kann. Der Getter ist ja kein Problem, nur wie mache ich das beim Setter :confused: Willst du das dann so verwenden? myArray = deineKlasse; und deineKlasse[i] = 3; Dann kannst du doch direkt ein Array nehmen. Oder eine eigene Collection erstellen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 10. November 2006 Autor Teilen Geschrieben 10. November 2006 Nein. Wenn man dem Setter einen Index übergeben könnte dann könnte man das so benutzen: klasse.wert[4] = wert; [/php] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 10. November 2006 Teilen Geschrieben 10. November 2006 Wo ist das Problem? Wenn "set" für ein Property "wert" existiert und "wert" z.B. den Typ int[] besitzt, dann kannst Du auch klasse.wert[i] = neuer_wert; schreiben. Natürlich kannst Du über solch ein Property ebenfalls gleich ein neues Array mit völlig anderen Einträgen zuweisen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MarkusLe Geschrieben 10. November 2006 Teilen Geschrieben 10. November 2006 Hallo Bubble, eine Eigenschaft sollte kein Array zurückgeben um einzelne Elemente zu ändern, da dies Performanceprobleme mit sich bringen kann. (Das Array wird immer kopiert, bei JEDEM Zugriff) siehe: Eigenschaften sollten keine Arrays zurückgeben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 10. November 2006 Teilen Geschrieben 10. November 2006 Das von Dir verlinkte Beispiel beschäftigt sich mit einem anderen Sachverhalt, bei dem von der "get"-Methode eine Kopie eines Arrays zurückgegeben wird. Guybrush kann durchaus von der "get"-Methode eine Referenz auf sein Array zurückgeben lassen und braucht dann auch keine "set"-Methode, um einzelne Einträge zu verändern. Nur wenn er die einzelnen Einträge bei vor einer Zuweisung validieren möchte, muss er eine eigene Methode schreiben, damit keine Referenz auf sein internes Array ausserhalb der Klasse erreichbar ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 10. November 2006 Autor Teilen Geschrieben 10. November 2006 Nur wenn er die einzelnen Einträge bei vor einer Zuweisung validieren möchte, muss er eine eigene Methode schreiben, damit keine Referenz auf sein internes Array ausserhalb der Klasse erreichbar ist. genau darum ging es mir Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 10. November 2006 Teilen Geschrieben 10. November 2006 Und wo ist dabei das Problem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 10. November 2006 Autor Teilen Geschrieben 10. November 2006 Es gibt keins, ich wollte wissen ob das mit einem Setter geht oder nicht und das wurde mit dem ersten Post beantwortet. Warum Argbeil das nochmal ausgegraben hat und da jetzt so ne Diskussion aufgekommen ist weiß ich nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.