Articles of generics

¿Cómo los generics de C # /. Net conocen sus tipos de parámetros?

En C #, una función o clase genérica es consciente de los tipos de sus parámetros generics. Esto significa que la información de tipo dynamic, como is o as está disponible (en contraste con Java donde no lo está). Tengo curiosidad, ¿cómo el comstackdor proporciona esta información de tipo a los métodos generics? Para las […]

Cómo usar la herencia al usar restricciones genéricas

Estoy luchando con algunos problemas de restricciones genéricas cuando bash implementar una biblioteca que permite la herencia y espero que alguien pueda ayudar. Estoy tratando de construir una biblioteca de clase que tenga 3 sabores, cada uno encima del otro. A mí me pareció una oportunidad perfecta para usar los generics, ya que no puedo […]

Usando generics con XmlSerializer

Cuando uso la serialización XML en C #, uso un código como este: public MyObject LoadData() { XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyObject)); using (TextReader reader = new StreamReader(settingsFileName)) { return (MyObject)xmlSerializer.Deserialize(reader); } } (y código similar para la deserialización). Requiere casting y no es realmente agradable. ¿Hay alguna forma, directamente en .NET Framework, de usar […]

Patrón de fábrica con generics abiertos

En ASP.NET Core, una de las cosas que puede hacer con el marco de dependency injections de Microsoft es vincular los “generics abiertos” (tipos generics no vinculados a un tipo concreto), como: public void ConfigureServices(IServiceCollection services) { services.AddSingleton(typeof(IRepository), typeof(Repository)) } También puede emplear el patrón de fábrica para hidratar dependencias . Aquí hay un ejemplo […]

C #: IEnumerable, GetEnumerator, un ejemplo simple y simple, por favor!

Intentar crear una clase uebersimple que implemente obtener el enumerador, pero fallar enloquecidamente debido a la falta de ejemplos simples o que no funcionan. Todo lo que quiero hacer es crear una envoltura alrededor de una estructura de datos (en este caso una lista, pero es posible que necesite un diccionario más adelante) y agregar […]

¿Qué es Action ?

¿Qué es Action , cómo se puede usar?

¿Puedo obtener metadatos específicos de un Func ?

Considere el siguiente código: string propertyName; var dateList = new List() { DateTime.Now }; propertyName = dateList.GetPropertyName(dateTimeObject => dateTimeObject.Hour); // I want the propertyName variable to now contain the string “Hour” Aquí está el método de extensión: public static string GetPropertyName(this IList list, Func func) { //TODO: would like to dynamically determine which // property […]

¿Cómo crear un Expression.Lambda cuando un tipo no se conoce hasta el tiempo de ejecución?

Esto se explica mejor usando código. Tengo una clase genérica que tiene un método que devuelve un entero. Aquí hay una versión simple con el propósito de explicar … public class Gen { public int DoSomething(T instance) { // Real code does something more interesting! return 1; } } En el tiempo de ejecución, uso […]

SelectMany tres niveles de profundidad

Puedo aplanar los resultados de una colección secundaria dentro de una colección con SelectMany: // a list of Foos, a Foo contains a List of Bars var source = new List() { … }; var q = source.SelectMany(foo => foo.Bar) .Select(bar => bar.barId) .ToList(); esto me da la lista de todos los Id. de barra […]

Hereda de una clase base genérica, aplique una restricción e implemente una interfaz en C #

Esta es una pregunta de syntax. Tengo una clase genérica que se hereda de una clase base genérica y aplica una restricción a uno de los parámetros de tipo. También quiero que la clase derivada implemente una interfaz. Por mi vida, parece que no puedo entender la syntax correcta. Esto es lo que tengo: DerivedFoo […]