.NET C# Java Javascript Exception

 | 
Frage stellen Fragen ansehen Themen Benutzer Abzeichen RSS
3
Mir ist nicht ganz klar, wie bestimmte Javakonstrukte in C# übersetzt werden. Wie übersetzt man z.B. folgenden Code?
class C {
static <T> void copy (List<? extends T> a, List<? super T> b) {
for (T t : a)
b.add (t);
}
}


Dabei macht mit das ? extends T Probleme.
Themen:
09.08.09
Leroy 255 1 4
Kommentieren - Für Rückfragen oder Anmerkungen
3 Antworten
4
Ein Vergleich von Generics in Java und C# bietet der Wiki-Artikel über den Unterschied der beiden Sprachen.

Der Code wird zu folgendem C#-Code übersetzt (auch wenn die Bezeichnungen gem. C# Design-Guidlines nicht korrket sind):
class C
{
static void copy<T>(List<T> a, List<T> b)
{
foreach (T t in a)
b.Add(t);
}
}


Dabei macht mit das ? extends T Probleme

Das bedeutet dass jeder Typ der von T erbt verwendet werden kann. Siehe hierzu: Using Generics With Wildcards and Extends
09.08.09
gfoidl 6,5k 3 5
3
M.E. erfüllt dies den äquivalenten Zweck:
public static void copy<S, T> (List<S> a, List<T> b)
where S: T
{
foreach (T t in a)
b.Add(t);
}
07.09.09
pjacobi 946 2 6
2
Einen guten Vergleich findet man unter:
Comparing Java and C# Generics

Der Artikel ist zwar auf Englisch, aber recht gut.
Was die Übersetzung von Java nach C# angeht, ist für dich wahrscheinlich folgender Abschnitt am interessantesten:
Java Wildcards (Java Method Constraints) - C# Equivalents
08.09.09
stj 316 1 2
Deine Antwort
Entweder einloggen... ...oder ohne Wartezeit registrieren
Name
Passwort
Passwort wiederholen
E-Mail
Geworben von


Login mit OpenID

Mit einem OpenID-Account kannst Du dich auf allen Webseiten anmelden, die OpenID unterstützen. Du hast bereits ein Benutzerkonto bei einem der folgenden Provider? Dann kannst Du dich direkt bei codekicker damit registrieren.


OpenID-Provider anklicken: