Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Wie erhält man in C # einen generischen Enumerator aus einem bestimmten Array? Im folgenden Code MyArraybefindet sich ein Array von MyTypeObjekten. Ich möchte MyIEnumeratorin der gezeigten Weise erhalten, aber es scheint, dass ich einen leeren Enumerator erhalte (obwohl ich das bestätigt habe MyArray.Length > 0). MyType[] MyArray = ... …
Ich analysiere eine XML-Datei mit der XmlReaderKlasse in .NET und dachte, es wäre klug, eine generische Analysefunktion zu schreiben, um verschiedene Attribute generisch zu lesen. Ich habe mir folgende Funktion ausgedacht: private static T ReadData<T>(XmlReader reader, string value) { reader.MoveToAttribute(value); object readData = reader.ReadContentAsObject(); return (T)readData; } Wie mir klar …
Ich habe kürzlich darüber gelesen und Leute gesehen, die diese Klasse verwenden, aber in fast allen Fällen nullhätte die Verwendung auch funktioniert - wenn nicht intuitiver. Kann jemand ein konkretes Beispiel geben, wo Optionaletwas erreicht werden nullkönnte, das nicht oder viel sauberer wäre? Das einzige, woran ich denken kann, ist, …
Kann mir jemand erklären, warum die Generika- List.Contains()Funktion so langsam ist? Ich habe eine List<long>mit ungefähr einer Million Nummern und den Code, der ständig überprüft, ob diese Nummern eine bestimmte Nummer enthalten. Ich habe versucht, dasselbe mit Dictionary<long, byte>und der Dictionary.ContainsKey()Funktion zu tun , und es war ungefähr 10-20 Mal …
Ich kann anrufen Get<int>(Stat);oderGet<string>(Name); Aber beim Kompilieren bekomme ich: Typ 'int' kann nicht implizit in 'T' konvertiert werden. und das gleiche für string . public T Get<T>(Stats type) where T : IConvertible { if (typeof(T) == typeof(int)) { int t = Convert.ToInt16(PlayerStats[type]); return t; } if (typeof(T) == typeof(string)) { …
Ich versuche, in Razor einen Helfer zu schreiben, der wie folgt aussieht: @helper DoSomething<T, U>(Expression<Func<T, U>> expr) where T : class Leider denkt der Parser, dass dies <Tder Anfang eines HTML-Elements ist und ich am Ende einen Syntaxfehler habe. Ist es möglich, mit Razor einen Helfer zu erstellen, der eine …
Ich möchte dieses Protokoll: protocol AddsMoreCommands { /* ... */ } Nur von Klassen zu übernehmen, die von der Klasse erben UIViewController. Auf dieser Seite kann ich angeben, dass sie nur von einer Klasse (im Gegensatz zu einer Struktur) schriftlich übernommen wird protocol AddsMoreCommands: class { } aber ich kann …
public bool IsList(object value) { Type type = value.GetType(); // Check if type is a generic list of any type } Wie kann am besten überprüft werden, ob das angegebene Objekt eine Liste ist oder in eine Liste umgewandelt werden kann?
Ich habe eine ArrayList, die aus verschiedenen Elementen besteht, die aus einer Datenbank importiert wurden und aus Zeichenfolgen, Zahlen, Doppelwerten und Ints bestehen. Gibt es eine Möglichkeit, mithilfe einer Reflexionstechnik herauszufinden, welche Datentypen die einzelnen Elemente enthalten? Zu Ihrer Information: Der Grund dafür, dass es so viele Arten von Daten …
Ich habe eine Vorlagenklasse wie folgt: class MyClass<T> { T field; public void myMethod() { field = new T(); // gives compiler error } } Wie erstelle ich eine neue Instanz von T in meiner Klasse?
Angenommen, ich habe ein Protokoll: public protocol Printable { typealias T func Print(val:T) } Und hier ist die Implementierung class Printer<T> : Printable { func Print(val: T) { println(val) } } Meine Erwartung war, dass ich in der Lage sein muss, PrintableVariablen zum Drucken von Werten wie diesen zu verwenden: …
So bin ich heute auf ein interessantes Problem gestoßen. Wir haben einen WCF-Webdienst, der eine IList zurückgibt. Nicht wirklich eine große Sache, bis ich es sortieren wollte. Es stellt sich heraus, dass in der IList-Schnittstelle keine Sortiermethode integriert ist. Am Ende benutzte ich die ArrayList.Adapter(list).Sort(new MyComparer())Methode, um das Problem zu …
Wie kann ich so etwas zum Laufen bringen? Ich kann prüfen ob ob (obj instanceof List<?>)aber nicht ob (obj instanceof List<MyType>). Gibt es eine Möglichkeit, dies zu tun?
Es scheint, dass ein List-Objekt nicht in einer List-Variablen in C # gespeichert und nicht einmal explizit auf diese Weise umgewandelt werden kann. List<string> sl = new List<string>(); List<object> ol; ol = sl; Ergebnisse in Can nicht implizit konvertiert Typ System.Collections.Generic.List<string>zuSystem.Collections.Generic.List<object> Und dann... List<string> sl = new List<string>(); List<object> ol; …
Ich dachte, ich würde diesen Softball jedem anbieten, der ihn aus dem Park schlagen möchte. Was sind Generika, was sind die Vorteile von Generika, warum, wo, wie soll ich sie verwenden? Bitte halten Sie es ziemlich einfach. Vielen Dank.
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.