Esiste un modo comune per passare un singolo elemento di tipo Ta un metodo che prevede un IEnumerable<T>parametro? La lingua è C #, framework versione 2.0. Attualmente sto usando un metodo helper (è .Net 2.0, quindi ho un sacco di metodi helper di casting / proiezione simili a LINQ), ma …
Qualcuno può dirmi se c'è un modo con generics per limitare un argomento di tipo generico Ta solo: Int16 Int32 Int64 UInt16 UInt32 UInt64 Sono a conoscenza della whereparola chiave, ma non riesco a trovare un'interfaccia solo per questi tipi, Qualcosa di simile a: static bool IntegerFunction<T>(T value) where T …
Secondo la documentazione ==dell'operatore in MSDN , Per tipi di valore predefiniti, l'operatore di uguaglianza (==) restituisce vero se i valori dei suoi operandi sono uguali, falso altrimenti. Per tipi di riferimento diversi da string, == restituisce true se i suoi due operandi si riferiscono allo stesso oggetto. Per il …
Ho una classe generica nel mio progetto con classi derivate. public class GenericClass<T> : GenericInterface<T> { } public class Test : GenericClass<SomeType> { } C'è un modo per scoprire se un Typeoggetto è derivato GenericClass? t.IsSubclassOf(typeof(GenericClass<>)) non funziona.
Ho un IEnumerable<T>metodo che sto usando per trovare i controlli in una pagina WebForms. Il metodo è ricorsivo e sto riscontrando dei problemi nel restituire il tipo desiderato quando yield returnrestituisce il valore della chiamata ricorsiva. Il mio codice ha il seguente aspetto: public static IEnumerable<Control> GetDeepControlsByType<T>(this Control control) { …
Mi chiedo se c'è un motivo speciale in Java per usare sempre " extends" piuttosto che " implements" per definire i limiti dei typeparameters. Esempio: public interface C {} public class A<B implements C>{} è proibito ma public class A<B extends C>{} è corretto. Qual è la ragione?
Ho un metodo generico definito in questo modo: public void MyMethod<T>(T myArgument) La prima cosa che voglio fare è verificare se il valore di myArgument è il valore predefinito per quel tipo, qualcosa del genere: if (myArgument == default(T)) Ma questo non viene compilato perché non ho garantito che T …
Voglio fare qualcosa del genere: myYear = record.GetValueOrNull<int?>("myYear"), Notare il tipo nullable come parametro generico. Poiché la GetValueOrNullfunzione potrebbe restituire null il mio primo tentativo è stato questo: public static T GetValueOrNull<T>(this DbDataRecord reader, string columnName) where T : class { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) { …
Esiste un metodo pulito per deridere una classe con parametri generici? Di 'che devo prendere in giro una classe Foo<T>che devo passare a un metodo che prevede a Foo<Bar>. Posso fare quanto segue abbastanza facilmente: Foo mockFoo = mock(Foo.class); when(mockFoo.getValue).thenReturn(new Bar()); Supponendo che getValue()ritorni il tipo generico T. Ma avrà …
Puoi trovare quanto segue sul Web: Tipo di tipo superiore == tipo costruttore? class AClass[T]{...} // For example, class List[T] Alcuni sostengono che si tratta di un tipo di tipo più elevato, poiché si estrae dai tipi che sarebbero conformi alla definizione. I tipi di tipo superiore sono tipi che …
Qual è il motivo per cui Java non ci consente di fare private T[] elements = new T[initialCapacity]; Potrei capire .NET non ci ha permesso di farlo, poiché in .NET hai tipi di valore che in fase di runtime possono avere dimensioni diverse, ma in Java tutti i tipi di …
Sto riscontrando problemi nella navigazione della regola di Java per inferire i parametri di tipo generico. Considera la seguente classe, che ha un parametro elenco opzionale: import java.util.Collections; import java.util.List; public class Person { private String name; private List<String> nicknames; public Person(String name) { this(name,Collections.emptyList()); } public Person(String name,List<String> nicknames) …
Io ho; List<String> stringList = new ArrayList<String>(); List<Integer> integerList = new ArrayList<Integer>(); Esiste un modo (semplice) per recuperare il tipo generico dell'elenco?
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.