Tengo una interfaz llamada Identifiable<TId>
que contiene un único Id de propiedad del tipo dado. Quiero crear una clase genérica que tome uno de estos como un parámetro de tipo. Debe ser genérico porque quiero devolver el tipo concreto, llamar a otros métodos genéricos desde dentro y usar cosas como typeof(T)
.¿Es posible implementar esta interfaz genéricamente para que se le pueda pasar solo un parámetro de tipo?
Esto funciona bien:
public class ClassName<T, TId> where T : Identifiable<TId>
problema es que código de llamada tiene que pasar en dos tipos. p.ej. new ClassName<Person, int>()
Me pregunto si en .NET 3.5 hay alguna forma de escribir esto para que TId pueda inferirse por T? ¿Permitir que la persona que llama simplemente haga new ClassName<Person>()
?
Tal vez podría mostrar un ejemplo un poco más detallada por lo que podría sea evidente lo que está tratando de hacer y por qué. – deepee1