Entwickler-Ecke
C# - Die Sprache - Methode richtig gestalten - Übergabeparameter
Felix2000 - Di 16.08.11 14:07
Titel: Methode richtig gestalten - Übergabeparameter
Hi Folks !
Ich habe eine Frage an euch. Wenn ich in C Sharp einer Methode ein Array, ein Array welches evtl. mehrere Objekte beinhaltet oder ein sonstiges Objekt beim Aufruf als Parameter übergeben will, wie genau gestalte ich dann die Methode
a)beim Aufruf dieser selbst (also wie genau sieht das Aufruf einer solchen Methode inkl. der Parameterübergabe aus)
b)bei der Deklaration dieser Methode (wie genau muss die Methode entwickelt werden)
Danke für die Hilfestellung !
Greetz
Felix
Th69 - Di 16.08.11 19:08
Hallo Felix,
so allgemein kann man dies nicht beantworten.
Es gibt verschiedene Möglichkeiten ein Array als Parameter zu deklarieren (mit "int" als Beispiel):
C#-Quelltext
1: 2: 3: 4: 5: 6:
| void Iterate1(int[] array); void Iterate2(params int[] array); void Iterate3(IList array); void Iterate4(IList<int> array); void Iterate5(IEnumerable array); void Iterate6(IEnumerable<int> array); |
Generell sollten die Parameter so allgemeingültig wie möglich sein, so daß man die Methode dann mit verschiedenen Array-Typen aufrufen kann. Daher sollten bevorzugt die Interfaces eingesetzt werden - am besten dann natürlich die generischen, d.h. mit einem konkreten Typ bzw. einer Basisklasse oder am besten wiederum einem Interface, d.h.:
C#-Quelltext
1:
| void Iterate(IEnumerable<IBaseType> array); |
Felix2000 - Mi 17.08.11 09:38
Hi Folks !
Th69 hat folgendes geschrieben: |
Generell sollten die Parameter so allgemeingültig wie möglich sein, so daß man die Methode dann mit verschiedenen Array-Typen aufrufen kann. |
Ok das macht definitiv Sinn, viele der bekannten Design-Patterns basieren ja auch auf dieser Idee.
Th69 hat folgendes geschrieben: |
Daher sollten bevorzugt die Interfaces eingesetzt werden - am besten dann natürlich die generischen, d.h. mit einem konkreten Typ bzw. einer Basisklasse oder am besten wiederum einem Interface, d.h.:
C#-Quelltext 1:
| void Iterate(IEnumerable<IBaseType> array); | |
Also wenn ich ehrlich bin, dann habe ich das noch nicht so richtig verstanden. Was genau sind generischen Interfaces, ich habe das ehrlich gesagt noch nie gehört!?
Greetz
Felix
Moderiert von
Th69: Quotes richtig formatiert
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!