Articles of generici

Inizializza object generico con tipo sconosciuto

Come posso inizializzare un elenco contenente oggetti generici i cui tipi possono essere diversi? Ad esempio, ho il seguente: this.Wheres = new List<Where>(); Come sai, non è una sintassi valida. Tuttavia, a volte il tipo passato a Where sarà una stringa ea volte sarà DateTime, ecc. Ho provato a utilizzare l’oggetto come tipo inizializzato, ma […]

Aggiunta di un vincolo del metodo generico dall’altra class generica

Non sono sicuro che il titolo rifletta la domanda che intendevo, ma .. Diciamo che ho due classi, Entity e Component : public abstract class Entity { private List _components = new List(); public void AddComponent() where T : Component { T component = (T)Activator.CreateInstance(typeof(T)); component.Owner = this; _components.Add(component); } } public abstract class Component […]

Qual è il tipo generico aperto dell’array ?

Quando faccio int[] , string[] , T[] – questo è un array generico. Un array è solo un object come tutto il resto. Quindi qual è il tipo generico aperto effettivo di []? Presumo che sia solo un po ‘di zucchero sintattico su qualcosa come Array ma non sono stato in grado di trovare nulla […]

List.Contains è pienamente equivalente a List.IndexOf?

Descrizione MSDN di List.Contains () dice Questo metodo determina l’uguaglianza utilizzando il confronto di uguaglianza predefinito, come definito dall’implementazione dell’object del metodo IEquatable.Equals per T (il tipo di valori nell’elenco). e la descrizione di List.IndexOf () dice Questo metodo determina l’uguaglianza utilizzando il confronto di uguaglianza predefinito EqualityComparer.Default per T, il tipo di valori nell’elenco. […]

Anti-vincolo sui generici C #

Ispirato al tentativo di Phil Haack di coalescenza nullo o vuota , sto provando a scrivere un paio di metodi di estensione per l’object string , nonché sull’interfaccia IEnumerable , per semplificare il ckecking nullo o emtpy. Tuttavia, sto incontrando problemi: quando sto tentando di chiamare la versione string di AsNullIsEmpty , il compilatore considera […]

Il modo più semplice per implementare .Contains () su un ICollection <Tuple >

Supponiamo che io abbia un Dictionary<String, Tuple> e voglio determinare se uno qualsiasi dei valori del dizionario ha V1 per il suo T1. Come lo farei nel modo più elegante? Linq?

Risoluzione dell’interfaccia con vincolo di tipo generico con Castle Windsor

Data l’interfaccia in cui FooRequest e FooResponse sono astratti: public interface IFooHandler where TRequest : FooRequest where TResponse : FooResponse { TResponse CheckFoo(TRequest request); } Un’implementazione di: public class MyFooHandler : IFooHandler { public MyFooResponse CheckFoo(MyFooRequest request) { /* check for foos */ } } Come potrei registrarlo in Castle Windsor così posso risolverlo usando […]

C # Generics Inheritance

Ho la seguente class public class AccountingBase where TItemType : AccountingItemBase E nel mio AccountingItemBase ho la seguente proprietà: public virtual AccountingBase Parent { get; set; } nel mio AccountingBase, sto provando a fare quanto segue item.Parent = this; Logicamente questo dovrebbe funzionare, poiché TItemType eredita da AccountingItemBase, ma invece ottengo il seguente errore: > […]

Come risolvere: imansible eseguire il comando Generic.List su Linq.IQueryable utilizzando Automapper?

Sto riscontrando il seguente errore nell’uso di un modello DTO e EF: Imansible eseguire il cast dell’object di tipo ‘System.Collections.Generic.List 1[Project.Core.UI.Models.ContentTypes]’ to type ‘System.Linq.IQueryable 1 [Project.Core.UI.Models.ContentTypes] Bootstrap: Mapper.CreateMap(); In un metodo di controllo OData public IQueryable Get() {…} , utilizzando: var result = Mapper.Map<IQueryable, IQueryable>(_repository.Query().Get() .Where(u => u.UserId == userId) .OrderBy(o => o.Description)); Ho anche […]

C #. Cosa significa “Il tipo T deve essere un tipo di riferimento per utilizzarlo come parametro”.

Sto cercando di creare un controller generico sul mio MVC C # Entity Framework Application. public class GenericRecordController : Controller { private DbSet Table; // … public action(){ // … db.Entry(T_Instance).State = System.Data.Entity.EntityState.Modified; } } Tuttavia la riga DbSet < T > e T_Instance ha un errore del compilatore. Il tipo T deve essere un […]