| 

.NET C# Java Javascript Exception

3
Eine Klasse kann ich ja über Generics mit verschiedenen Typen instanzieren. Geht das auch mit Funktionen? Also sowas wie:
public T FetchT(T t)
{
return t;
}
News:
19.02.2011
Nguyenin 33 1 4
3 Antworten
4
Wenn Du tatsächlich nach einer Lösung für variable Methoden-Parameter suchst, dann hilft Dir Joachims Link weiter. Dein Beispiel läßt mich aber eher vermuten, dass Du ganz einfach das hier suchst:

public T Fetch<T>(T t)
{
return t;
}


Zum Weiterlesen: Generic Methods (C# Programming Guide).
19.02.2011
Matthias Hlawatsch 13,2k 4 9
Also ich hätte das jetzt mal anhand des Beispiels auch so interpretiert wie Du, Matthias.
Torsten Weber 19.02.2011
2
Visual C# Developer Center
Variable Type-Parameter-Liste [Generics]
19.02.2011
Joachim 3,1k 4 9
0
Ich sehe folgende Möglichkeiten (zusammengefasst):
- Methode mit Typparameter (generische Methode):
public T Fetch<T>(T x) { return x; }

- Methodenüberladung:
public int Fetch(int i) { return i; }
public string Fetch(string s) { return s; }
public string Fetch(string s, double x) { return s + x.ToString(); }
... usw.


- Param-Array (Variable Anzahl Parameter):
public int Fetch(param int[] a) { return a[0]; }

- Vererbung: Abgeleitete Klassen sind zuweisungskompatibel zur Basisklasse:
public string Fetch(Person p) { return p.Name; }
Aufruf: Fetch( new Student() { Name="Peter" });
wobei die Klasse Student von Klasse Person erbt (class Student : Person).

- Schnittstellen: Ähnlich wie Klassenvererbung. Klassen die die Schnittstelle implementieren sind zuweisungskompatibel zur Schnittstelle:
interface IDruckbar { void Drucken(); }

class Person : IDruckbar {
public Name { get; set; }
public void Drucken() { Console.WriteLine(Name); }
}

public void Print (IDruckbar d) { d.Drucken(); }

Print(new Person { Name="John" });


- Und zu guter Letzt: Diese verschiedenen Ansätze sind miteinander kombinierbar.
21.02.2011
Olivier J. 11 1

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH