Autor Beitrag
KokaLola
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 29.10.10 16:56 
Moin - ich hoffe meine Fraeg kann hier beantwortet werden...
unzwar suche ich sowas wie Templates für c# in c++ sieht das ganze in etwa so aus:

template < typename myVarType >
myVarType max(myVarType x, myVarType y)
{
if (x < y)
return y;
else
return x;
}


wobei myVarType dann jeder typ sein kann

Mit freundlichen Grüßen
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Fr 29.10.10 17:41 
Ja sowas gibt es. Nennt sich Generics
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 29.10.10 18:21 
Der Unterschied ist aber, daß Generics nicht einfache Codeersetzungen sind, so daß Operatoren nicht unterstützt werden (d.h. dein konkretes Beispiel mit einer Maximumfunktion kann man so nicht nach C# übertragen).
Generics kann man nur für Datentypen einer bestimmten Basisklasse (bzw. Interface) verwenden und dabei dann auch nur Methoden dieser Klasse verwenden (wenn man nicht innerhalb der Generic-Methode explizit auf einen bestimmten Typ 'castet').

Konkret für den '<'-Operator: dieser ist nur für die numerischen Datentypen (int, float, decimal, ...) sowie Enum(erationen) definiert (die Operatoren kann man aber - wie in C++ - für eine eigene Klasse überladen).

Als Alternative gibt es in .NET die IComparable<T>-Schnittstelle, d.h.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
class Program
{
  static void Main(string[] args)
  {
    Console.WriteLine(Num.Max(-15));
  }
}

class Num
{
  public static T Max<T>(T x, T y)
    where T : IComparable<T>
  {
    return x.CompareTo(y) > 0 ? x : y;
  }
}


So ich hoffe, dies beantwortet deine Frage zufriedenstellend -)

Für diesen Beitrag haben gedankt: KokaLola
KokaLola Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 29.10.10 18:49 
Vielen Dank hat mir schon sehr geholfen =) vllt. kannst ja noch mein 2. Problem lösen... habe ich acuh hier gepostet nur ist eines dazu gekommen... betrifft die XmlSerializer-Klasse....

MfG