2010-11-23 11 views

Respuesta

6

Por ejemplo, el infinito negativo es un valor máximo natural de una lista vacía. Con esto, tiene: max(l1 + l2) = max(max(l1), max(l2)), donde l1 y l2 son listas arbitrarias, posiblemente vacías.

Una aplicación real de este principio:

float Max(IEnumerable<float> list) 
{ 
    // invariant: max contains maximum over the part of the list 
    // considered so far 
    float max = float.NegativeInfinity; 
    foreach (float v in list) 
     if (v > max) 
      max = v; 
    return max; 
} 
+0

Creo que devolver un '' flote ''que es' nulo' en el caso de listas vacías es una respuesta mucho más natural que devolver '-infinity'. ¿Qué pasa si mi lista es una lista de distancias? La distancia negativa no tendría sentido. – Alexander

+0

Teniendo en cuenta que las listas vacías pueden ser un caso extremo muy específico para la mayoría de las aplicaciones, preferiría la solución anterior en lugar de tener que cuidar siempre de los valores 'null'. – miho

7

PostiveInfinity

Esta constante se devuelve cuando el resultado de una operación es mayor que MaxValue.

NegativeInfinity

Esta constante se devuelve cuando el resultado de una operación es menor que MinValue.

Por lo tanto, debería usar estas constantes para verificar que sus valores estén fuera del rango para su tipo.

Cuestiones relacionadas