Articles of generics

anulando método genérico abstracto de clase no genérica

clase base class Drawer { public abstract void Draw(T type); } clase derivada # 1 class ADrawer : Drawer { public override void Draw(List list) { foreach (var a in list) { DrawA(a); } } public void DrawA(Agent a) { //draw code here } } clase derivada # 2 class AnotherDrawer : Drawer { public […]

¿Es posible usar una lista de generics sin tipo en C #?

Estoy probando el siguiente diseño sin éxito: abstract class Foo { abstract T Output { get; } } class Bar { List Foos; } No me gustaría usar una lista de matriz, porque tendría que usar conversiones inseguras para obtener el tipo. Me gustaría que se escribiera a Foo para que “Salida” no sea solo […]

Llame al método de extensión genérico con un tipo dynamic

Estoy tratando de ejecutar un método de extensión que devuelve un objeto de tipo T, pero estoy tratando de tener un tipo T dynamic basado en un tipo genérico dynamic de Encabezado / Detalle. Esto tal vez un poco detallado … using System; using System.Collections.Generic; namespace Blah { public interface IHeader { string Name { […]

C # Casting Generic Child Type to Parent

Digamos que tenemos estos tipos: class A {} class B : A {} class X {} ¿Por qué no podemos hacer esto? X var = new X(); ¿Hay alguna solución disponible? [Editar] Intenté usar la covarianza pero falló porque quiero acceder a una propiedad dentro de X que es de tipo T y C # […]

Convertir cadena a tipo, donde tipo es una variable

Estoy intentando crear un método estándar para manejar el llenado de un modelo de vista basado en valores almacenados en una cookie, que se utilizan como valores predeterminados del usuario para los criterios de búsqueda. Tengo problemas cuando se trata de convertir los valores de las cookies de cadena al tipo de propiedad para que […]

¿Es posible utilizar DataContract generics desde el extremo del cliente?

Sé que cuando creas un servicio puedes crear un DataContract genérico: [DataContract(Name = “Get{0}Request”) public sealed class GetItemRequest where T : class, new() { … } [DataContract(Name = “Get{0}Response”) public sealed class GetItemResponse where T : class, new() { … } [ServiceContract] public void MyService : IMyService { [OperationContract] GetItemResponse GetItem(GetItemRequest request); } Esto genera […]

¿Cómo puedo convertir IEnumerable a List donde cada objeto es un IFoo?

¿Cómo puedo convertir IEnumerable a List donde cada objeto es un IFoo ? Tengo un IEnumerable someCollection , algo de someCollection , y cada elemento en someCollection es una instancia de IFoo . ¿Cómo puedo convertir un poco de someCollection en una List ? ¿Puedo usar convertir o lanzar o algo en lugar de hacer […]

Inferencia genérica de tipo delegado C #

¿Por qué el comstackdor de C # no puede inferir T a int en el ejemplo especificado? void Main() { int a = 0; Parse(“1”, x => a = x); // Compiler error: // Cannot convert expression type ‘int’ to return type ‘T’ } public void Parse(string x, Func setter) { var parsed = …. […]

Restrinja los tipos que un método de subclase genérico puede aceptar en c #

Pido disculpas si el título es ambiguo o si este es un duplicado. He pasado hoy leyendo una tonelada en generics y buscando una situación similar en vano. Estoy escribiendo un pequeño motor de juego. Un aspecto de esto es la capacidad de una “unidad” para llevar recursos. Algunas unidades pueden llevar cualquier recurso, otras […]

Pregunta sobre indexadores y / o generics.

¿Cómo es posible saber si un objeto implementa un indexador? Necesito compartir una lógica para un DataRow y un IDataReader, pero no comparten ninguna interfaz. También probé con generics, pero no sé qué restricción debo poner en la cláusula where. public class Indexer { // myObject should be a DataRow or a IDataReader private object […]