Básicamente he lo siguiente:limitaciones genéricas - no estoy seguro de cómo solucionar esta situación con una cualquiera/o el caso
public static bool IsBetween<T>(this T value, T a, T b)
where T : IComparable
{
...
}
public static bool IsBetween<T>(this T value, T a, T b)
where T : IComparable<T>
{
...
}
El problema es que no puedo hacer esto porque no se puede tener un miembro con la misma firma, incluso si las restricciones son diferentes. Sin embargo, no hay forma de indicar que la restricción sea IComparable
O IComparable<T>
. Por lo tanto, no estoy seguro de qué hacer aquí fuera de solo escoger uno y seguir con ello. Y, no importa cuál escoja, estoy perdiendo por el otro porque están separados y no heredan el uno del otro (lo cual tiene sentido).
Me falta algo aquí, ¿hay alguna manera de lograr el uso de ambos, o voy a tener que elegir uno (probablemente la versión genérica)?
Nunca pensé en eso de esa manera. Supongo que fue porque empecé con la versión genérica, luego la copié/pegué e intenté hacer un cambio rápido. –
Además, ¿seleccionará esto por defecto la opción 'IComparable' y luego la opción 'IComparable'? –
@ m-y: la resolución de sobrecarga elegirá el método * más específico *. Si no hay forma de determinar cuál es más específico, obtendrá un error de ambigüedad. –