.NET C# Java Javascript Exception

 | 
Frage stellen Fragen Themen Mitglieder Abzeichen RSS-Feed
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,6k 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 hier damit registrieren.


OpenID-Provider anklicken: