Articles of genéricos

Melhor maneira de se referir ao meu próprio tipo

abstract class A where T:A { public event Action Event1; } class B : A { //has a field called Action Event1; } Existe uma maneira mais elegante de fazer isso? Eu quero coisas (events, etc) na class base para poder usar o tipo de subclass.

C # Generics: Se T é um tipo de retorno, também pode ser anulado? Como posso combinar essas interfaces juntas?

Eu tenho a seguinte interface que retorna o parâmetro genérico do tipo T usando um retorno de chamada … public interface IDoWork { T DoWork(); } No entanto, também tenho a seguinte interface, mas não invocará um retorno de chamada, uma vez que ele retorna vazio. public interface IDoWork { void DoWork(); } Posso combinar […]

Converter IList para BindingList

Como posso converter uma lista IList para BindingList ?

Qual sobrecarga do método C # é escolhida?

Por que o método genérico é chamado quando as duas sobrecargas coincidem? public static void method1(object obj) { Console.WriteLine(“Object”); } public static void method1(T t) { Console.WriteLine(“Type T”); } public static void Main(String args[]) { method1(“xyz”); //Will print “Type T”; } Não deve haver nenhum conflito aqui, certo?

Usando a reflection para endereçar uma propriedade Linqed

Estou tentando escrever um método genérico que carregará um registro de um tipo específico, com um ID específico. Aqui está uma maneira que funciona: public abstract class LinqedTable where T : LinqableTable { public static T Get(long ID) { DataContext context = LinqUtils.GetDataContext(); var q = from obj in context.GetTable() where obj.ID == ID select […]

Não há nenhuma conversão de referência implícita de ‘System.Collections.Generic.List ‘ para ‘T’

class Class1 { public virtual void Update(T entity) { Update(new List() { entity }); //It’s failed } public virtual void Update(IEnumerable entities) { } public virtual void Update(TSub entity) where TSub : T { } public virtual void Update(IEnumerable entities) where TSub : T { } } Eu tenho um pedaço de código. Mas sempre […]

Posso limitar a profundidade de uma pilha genérica?

Existe uma maneira integrada de limitar a profundidade de um System.Collection.Generics.Stack? Então, se você estiver com capacidade máxima, empurrar um novo elemento removeria o fundo da pilha? Eu sei que posso fazer isso convertendo para uma matriz e reconstruindo a pilha, mas eu percebi que provavelmente já existe um método nela. EDIT: eu escrevi um […]

Controlador genérico de API da Web

Estou usando o Web API v2 e tenho um punhado de modelos para os quais preciso fazer operações CRUD. Por exemplo, eu tenho um modelo de Allergy e um modelo de Prescription . No próprio aplicativo, tenho modelos de visualização que podem ser transformados em seus modelos apropriados, mas, para simplificar, vamos apenas dizer que […]

Quem realmente decide o que é o tipo genérico?

Eu tenho essa function public static T2 MyFunc( T1 a, T1 b, T2 c) { return c; } Estou criando 2 instâncias de class Pessoas: class Person { } Person p = new Person(); Person p2 = new Person(); Eu estou chamando a function com: MyClass.MyFunc(p, p2, 5); minha pergunta é : Quem realmente decide […]

Por que o C # não faz inferências de tipos “simples” em genéricos?

Apenas curioso: claro, todos nós sabemos que o caso geral de inferência de tipos para genéricos é indecidível. E assim o C # não fará nenhum tipo de sub-digitação: se o Foo é genérico, o Foo não é um subtipo de Foo , ou Foo ou de qualquer outra coisa que você possa cozinhe. E […]