Articles of genéricos

ASP.NET MVC 3 Generic DisplayTemplates

Acabei de começar um projeto usando a ASP.NET MVC 3. Estou construindo em cima de um sistema de objects existente, então uma das primeiras coisas que tenho a fazer é definir modelos de exibição e editor para os vários tipos existentes. É possível no MVC definir um DisplayTemplate com um argumento genérico? Por exemplo, temos […]

C # criando uma conversão implícita para class genérica?

Eu tenho uma class de genéricos que eu costumava gravar dados para IsolatedStorage. Eu posso usar um static implicit operator T() para converter da minha class genérica para o parâmetro genérico T por exemplo MyClass foo = new MyClass(187.0); double t = foo; Minha pergunta é: como posso fazer o contrário? MyClass foo = new […]

GetOriginalTypeParameterType throws Referência de object não definida para uma instância de uma exceção de object

Referência: Como uma dinâmica pode ser usada como genérica? public void CheckEntity(int entityId, string entityType = null) { dynamic AnyObject = Activator.CreateInstance(“Assembly”,”Assembly.Models.DbModels.” + entityType).Unwrap(); CheckWithInference(AnyObject, entityId); } private static void CheckWithInference(T ignored, int entityId) where T : class { Check(entityId); } private static void Check(int entityId) where T : class { using (var gr = […]

Aguardar o resultado da Tarefa usando reflection em um método não genérico

Considere o seguinte caso: class A { public int Id; } class B : A { } class Main { public async Task Create(Type type) { MethodInfo method = this.GetType().GetMethod(“Create”, new Type[] { typeof(string) }).MakeGenericMethod(new Type[] { type }); A a = await (Task)method.Invoke(this, new object[] { “humpf” }); return a.Id; } public async Task […]

Como obter lista de resultados da chamada do delegado?

Eu preciso saber um pouco mais sobre os delegates e o design da linguagem C #. Vamos dizer, eu tenho um MulticastDelegate que implementa delegado genérico e contém várias chamadas: Func func = null; func += ( )=> return 8; func += () => return 16; func += () => return 32; Agora este código […]

Posso fazer um opcional genérico, com padrão para uma determinada class?

Minha pergunta está relacionada a Existe uma abordagem razoável para os parâmetros do tipo “padrão” em C # Generics? , mas usando uma class genérica interna essa abordagem não funciona. Dado código como este: using System; public class FooEventArgs : EventArgs { // … T properties and a constructor } public class Foo { public […]

Converta o Dicionário Genérico em um tipo diferente

Existe uma maneira rápida de converter um dictionary genérico de um tipo para outro eu tenho isto IDictionary _commands; e precisa passá-lo para uma function que leva um dictionary ligeiramente diferente public void Handle(IDictionary _commands);

Métodos genéricos versus methods não genéricos

Estou um pouco confuso sobre por que / quando eu sempre quis usar um método genérico, pois um método não genérico pode acessar os membros genéricos de sua class contida e receber argumentos genéricos de qualquer maneira. Então, usando um exemplo enlatado que provavelmente perde o ponto (ainda destaca por que estou fazendo esta pergunta), […]

Usando tipos de retorno void com o novo Func

Estou usando um delegado anônimo no meu código chamando esta function de exemplo: public static int TestFunction(int a, int b) { return a + b; } O delegado se parece com isso: var del = new Func(TestFunction); Minha pergunta é: como você especifica um tipo de retorno void para TResult ? O seguinte não funciona: […]

Sobrecarga de método baseada em restrições genéricas?

Posso de alguma forma ter methods sobrecarregados que diferem apenas por restrições de tipo genérico? Isso não compila: void Foo(T bar) where T : class { } void Foo(T bar) where T : struct { } Como estes são methods “abertos”, o método real deve ser fechado / construído / totalmente definido quando é referenciado […]