Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Ich habe die folgende Methode: namespace ListHelper { public class ListHelper<T> { public static bool ContainsAllItems(List<T> a, List<T> b) { return b.TrueForAll(delegate(T t) { return a.Contains(t); }); } } } Der Zweck besteht darin, festzustellen, ob eine Liste alle Elemente einer anderen Liste enthält. Es scheint mir, dass so etwas …
Können Sie werfen ein List<int>zu List<string>irgendwie? Ich weiß, ich könnte das Ding durchlaufen und .ToString (), aber eine Besetzung wäre großartig. Ich bin in C # 2.0 (also kein LINQ ).
Ich möchte einen Sammlungsinitialisierer für das nächste Codebit verwenden: public Dictionary<int, string> GetNames() { Dictionary<int, string> names = new Dictionary<int, string>(); names.Add(1, "Adam"); names.Add(2, "Bart"); names.Add(3, "Charlie"); return names; } Normalerweise sollte es so etwas sein wie: return new Dictionary<int, string> { 1, "Adam", 2, "Bart" ... Aber wie lautet …
[ThreadStatic]wird mit Attribut definiert, während ThreadLocal<T>generisch verwendet wird. Warum wurden unterschiedliche Designlösungen gewählt? Welche Vor- und Nachteile hat die Verwendung von generischen Überattributen in diesem Fall?
Ich habe eine generische Methode, die eine Anfrage entgegennimmt und eine Antwort liefert. public Tres DoSomething<Tres, Treq>(Tres response, Treq request) {/*stuff*/} Ich möchte jedoch nicht immer eine Antwort auf meine Anfrage, und ich möchte nicht immer Anforderungsdaten eingeben, um eine Antwort zu erhalten. Ich möchte auch nicht, dass Methoden vollständig …
Ich habe gesehen, dass der Wildcard, der zuvor verwendet wurde, ein Objekt bedeutet - aber kürzlich wurde Folgendes verwendet: <? extends Object> Sind diese beiden Verwendungen synonym, da alle Objekte Object erweitern?
Angenommen, ich habe eine beliebige Anzahl von Sammlungen, die jeweils Objekte desselben Typs enthalten (z. B. List<int> foound List<int> bar). Wenn diese Sammlungen selbst in einer Sammlung wären (z. B. vom Typ List<List<int>>, könnte ich SelectManysie alle zu einer Sammlung kombinieren. Wenn sich diese Sammlungen jedoch nicht bereits in derselben …
Gibt es eine Möglichkeit, eine Liste von primitiven int oder Primitiven in Java wie folgt zu erstellen? List<int> myList = new ArrayList<int>(); Es scheint, ich kann es tun List myList = new ArrayList(); und fügen Sie "int" in diese Liste ein. Aber dann würde das bedeuten, dass ich alles in …
Ich habe eine generische Klasse, die jeden Typ zulassen sollte, primitiv oder auf andere Weise. Das einzige Problem dabei ist die Verwendung default(T). Wenn Sie für einen Werttyp oder eine Zeichenfolge die Standardeinstellung aufrufen, wird diese auf einen angemessenen Wert (z. B. eine leere Zeichenfolge) initialisiert. Wenn Sie default(T)ein Objekt …
Gibt es eine Möglichkeit zu testen, ob T eine Klasse / Schnittstelle erbt / implementiert? private void MyGenericClass<T> () { if(T ... inherits or implements some class/interface }
Was ist die richtige Syntax dafür: IList<string> names = "Tom,Scott,Bob".Split(',').ToList<string>().Reverse(); Was vermassle ich? Was bedeutet TSource?
Ich habe ein Protokoll RequestType und es hat zugeordnetes Typmodell wie unten. public protocol RequestType: class { associatedtype Model var path: String { get set } } public extension RequestType { public func executeRequest(completionHandler: Result<Model, NSError> -> Void) { request.response(rootKeyPath: rootKeyPath) { [weak self] (response: Response<Model, NSError>) -> Void in …
In C ++ - Vorlagen kann angegeben werden, dass ein bestimmter Typparameter ein Standard ist. Das heißt, wenn nicht ausdrücklich angegeben, wird Typ T verwendet. Kann dies in C # durchgeführt oder angenähert werden? Ich suche so etwas wie: public class MyTemplate<T1, T2=string> {} Damit eine Instanz des Typs, die …
Ich habe ein Problem mit folgendem Code: func generic1<T>(name : String){ } func generic2<T>(name : String){ generic1<T>(name) } Das Ergebnis generic1 (name) führt zu einem Compilerfehler. "Eine generische Funktion kann nicht explizit spezialisiert werden." Gibt es eine Möglichkeit, diesen Fehler zu vermeiden? Ich kann die Signatur der generic1-Funktion nicht ändern, …
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.