Pregunta

private bool ValidDateCheck(){

 bool _isValid = true;
 try{
  DateTime.Parse("07/&*/2009");
  DateTime d = Convert.ToDateTime("07/&*/2009");
 }
 catch{
  _isValid = false;
 }
 return _isValid;
}

¿Cómo el código anterior no lanza una excepción?

¿Fue útil?

Solución

Esto es de la .NET 1.1 documentación :

  

La cadena s se analiza utilizando el   formateo de información en una   DateTimeFormatInfo inicializado para el   cultura actual.

     

Este método intenta analizar s   completamente y evitar tirar   FormatException. Ignora   datos no reconocidos si es posible y   llena el mes, día y año faltantes   información con la hora actual. Si   s contiene solo una fecha y no hora,   este método asume 12 A.M. Alguna   Blanco principal, interior o trasero   el carácter de espacio en s se ignora.

     

El parámetro s debe contener el   representación de una fecha y hora en   uno de los formatos descritos en el   Tema DateTimeFormatInfo.

No puedo probar esto porque la versión más antigua que puedo construir con VS2008 es 2.0.

Otros consejos

El código no lanza una excepción porque las excepciones se lanzan en tiempo de ejecución, y este código nunca se ejecuta. Sé que nunca se ejecuta porque no hay forma de que se compile con comillas simples para los literales de cadena. Necesitas usar comillas dobles para las cadenas.

Si las comillas simples son solo un error tipográfico, edite la pregunta y le daré otra mirada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top