Articles of genéricos

Atalho para “null se o object for nulo ou object.membro se o object não for nulo”

Eu estou tentando escrever um método de extensão genérico que me permite fazer isso: this.startDate = startDateXAttribute.NullOrPropertyOf(() => { return DateTime.Parse(startDateXAttribute.Value); }); NullOrPropertyOf() retornaria null se fosse usado em um object null (por exemplo, se startDateXAttribute fosse null ), ou retornaria o resultado de um Func se não fosse null. Como seria esse método de […]

Como criar um literal de class de um tipo conhecido: Class <List >

Tome o seguinte: public Class<List> getObjectType() { // what can I return here? } Que expressão literal de class posso retornar desse método que satisfará os genéricos e compilará? List.class não compilará e nem a List.class . Se você está se perguntando “por que”, estou escrevendo uma implementação do FactoryBean<List> do Spring, que requer que […]

O tipo deve ser um tipo de referência para usá-lo como parâmetro ‘T’ no tipo genérico ou método

Estou me aprofundando em genéricos e agora tenho uma situação que eu preciso de ajuda. Eu recebo um erro de compilation na class “Derived” abaixo, como mostrado no título do assunto. Eu vejo muitos outros posts semelhantes a este, mas eu não estou vendo o relacionamento. Alguém pode me dizer como resolver isso? using System; […]

Generics – tipos construídos abertos e fechados

Recentemente notei que tipos construídos genéricos podem ser abertos e fechados. Mas eu não entendo o que eles realmente significam. Você pode dar um exemplo simples?

Expressão Lambda e método genérico

Suponha que eu tenha uma interface genérica: interface MyComparable<T extends Comparable> { public int compare(T obj1, T obj2); } E um sort método: public static <T extends Comparable> void sort(List list, MyComparable comp) { // sort the list } Eu posso invocar esse método e passar uma expressão lambda como argumento: List list = Arrays.asList(“a”, […]

Inferência de tipo de reflection no Java 8 Lambdas

Eu estava experimentando com o novo Lambdas no Java 8, e estou procurando uma maneira de usar a reflection sobre as classs lambda para obter o tipo de retorno de uma function lambda. Eu estou especialmente interessado em casos em que o lambda implementa uma superinterface genérica. No exemplo de código abaixo, MapFunction é a […]

Implementar macro de troca genérica em C

Duplicar Possível: Existe um equivalente de std :: swap () em c Oi pessoal, Eu estava tentando um problema para escrever uma macro de troca genérica em C e minha macro se parece com isso: #define swap(x,y) { x = x + y; y = x – y; x = x – y; } Ele […]

Como posso determinar o tipo de um campo genérico em Java?

Eu tenho tentado determinar o tipo de um campo em uma class. Eu vi todos os methods de introspecção, mas não consegui descobrir como fazê-lo. Isso será usado para gerar xml / json a partir de uma class java. Eu olhei algumas das questões aqui, mas não encontrei exatamente o que eu preciso. Exemplo: class […]

O que significa “T” em c #?

Eu tenho um plano de fundo do VB e estou convertendo para c # para meu novo trabalho. Eu também estou tentando melhorar no .NET em geral. Eu vi a palavra-chave “T” muito usada em amostras postadas por pessoas. O que o “T” significa em c #? Por exemplo: public class SomeBase where T : […]

Tipo anulável como um parâmetro genérico possível?

Eu quero fazer algo assim: myYear = record.GetValueOrNull(“myYear”), Observe o tipo anulável como o parâmetro genérico. Como a function GetValueOrNull poderia retornar null, minha primeira tentativa foi esta: public static T GetValueOrNull(this DbDataRecord reader, string columnName) where T : class { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) { return (T)columnValue; } return null; […]