Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Ich stoße auf Java-Code wie folgt: public interface Foo<E> {} public interface Bar<T> {} public interface Zar<?> {} Was ist der Unterschied zwischen allen drei oben genannten und wie nennen sie diese Art von Klassen- oder Schnittstellendeklarationen in Java?
Ich habe nur wenige Methoden, die unterschiedliche generische Listen zurückgeben. Gibt es in .net eine statische Klassenmethode oder was auch immer, um eine Liste in eine Datentabelle umzuwandeln? Das einzige, was ich mir vorstellen kann, ist Reflection, um dies zu tun. WENN ich das habe: List<Whatever> whatever = new List<Whatever>(); …
Gibt es einen wirklichen praktischen Unterschied zwischen a SortedList<TKey,TValue>und a SortedDictionary<TKey,TValue>? Gibt es Umstände, unter denen Sie speziell das eine und nicht das andere verwenden würden?
Ich habe eine generische Methode, die zwei generische Parameter hat. Ich habe versucht, den folgenden Code zu kompilieren, aber es funktioniert nicht. Ist es eine .NET-Einschränkung? Ist es möglich, mehrere Einschränkungen für verschiedene Parameter zu haben? public TResponse Call<TResponse, TRequest>(TRequest request) where TRequest : MyClass, TResponse : MyOtherClass
Ich las Eine Tour durch Scala: Abstrakte Typen . Wann ist es besser, abstrakte Typen zu verwenden? Beispielsweise, abstract class Buffer { type T val element: T } eher, dass Generika zum Beispiel, abstract class Buffer[T] { val element: T }
Es gibt eine gute Diskussion über Generika und was sie wirklich hinter den Kulissen bei dieser Frage tun. Wir alle wissen, dass dies Vector<int[]>ein Vektor von ganzzahligen Arrays ist und HashTable<String, Person>eine Tabelle, deren Schlüssel Zeichenfolgen und Werte sind Person. Was mich jedoch verblüfft, ist die Verwendung von Class<>. Die …
Angenommen, Sie haben zwei Klassen: public class TestA {} public class TestB extends TestA{} Ich habe eine Methode, die a zurückgibt, List<TestA>und ich möchte alle Objekte in dieser Liste TestBso umwandeln, dass ich am Ende a habe List<TestB>.
Ich habe eine Anwendung, die verwaltete DLLs verwendet. Eine dieser DLLs gibt ein generisches Wörterbuch zurück: Dictionary<string, int> MyDictionary; Das Wörterbuch enthält Schlüssel in Groß- und Kleinschreibung. Auf einer anderen Seite erhalte ich eine Liste möglicher Schlüssel (Zeichenfolge), kann jedoch den Fall nicht garantieren. Ich versuche, den Wert im Wörterbuch …
Ich habe auf der Oracle-Website über Javas Typlöschung gelesen . Wann erfolgt die Typlöschung? Zur Kompilierungszeit oder zur Laufzeit? Wann wird die Klasse geladen? Wann wird die Klasse instanziiert? Viele Websites (einschließlich des oben erwähnten offiziellen Tutorials) geben an, dass die Typlöschung zur Kompilierungszeit erfolgt. Wenn die Typinformationen beim Kompilieren …
Warum arbeiten Generika in Java mit Klassen, aber nicht mit primitiven Typen? Dies funktioniert beispielsweise einwandfrei: List<Integer> foo = new ArrayList<Integer>(); das ist aber nicht erlaubt: List<int> bar = new ArrayList<int>();
Ich möchte eine Instanz eines Typs erstellen, den ich in einer generischen Methode angegeben habe. Dieser Typ verfügt über eine Reihe überladener Konstruktoren. Ich möchte in der Lage sein, Argumente an die Konstruktoren zu übergeben, aber Activator.CreateInstance<T>() sieht dies nicht als Option. Gibt es einen anderen Weg, es zu tun?
Ich habe eine Klasse, mit der ich "Eigenschaften" für eine andere Klasse speichern möchte. Diese Eigenschaften haben einfach einen Namen und einen Wert. Im Idealfall möchte ich typisierte Eigenschaften hinzufügen können , damit der zurückgegebene "Wert" immer von dem Typ ist, den ich möchte. Der Typ sollte immer ein Grundelement …
Wenn BaseFruitein Konstruktor einen akzeptiert int weight, kann ich ein Stück Obst in einer generischen Methode wie dieser instanziieren? public void AddFruit<T>()where T: BaseFruit{ BaseFruit fruit = new T(weight); /*new Apple(150);*/ fruit.Enlist(fruitManager); } Ein Beispiel wird hinter Kommentaren hinzugefügt. Es scheint, dass ich dies nur tun kann, wenn ich BaseFruiteinen …
Ich habe eine foreach-Schleife, die eine Liste von Objekten eines Typs liest und eine Liste von Objekten eines anderen Typs erstellt. Mir wurde gesagt, dass ein Lambda-Ausdruck das gleiche Ergebnis erzielen kann. var origList = List<OrigType>(); // assume populated var targetList = List<TargetType>(); foreach(OrigType a in origList) { targetList.Add(new TargetType() …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.