Question

private bool ValidDateCheck(){

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

Comment le code ci-dessus ne génère-t-il pas une exception?

Était-ce utile?

La solution

Ceci provient de la documentation .NET 1.1 :

  

La chaîne s est analysée à l'aide du   informations de formatage dans un   DateTimeFormatInfo initialisé pour le   culture actuelle.

     

Cette méthode tente d’analyser s   complètement et éviter de jeter   FormatException. Il ignore   données non reconnues si possible et   remplit le mois, le jour et l'année manquants   informations avec l'heure actuelle. Si   s ne contient qu'une date et aucune heure,   cette méthode suppose 12 heures. Tout   blanc de tête, intérieur ou arrière   le caractère d'espace en s est ignoré.

     

Le paramètre s doit contenir le   représentation d'une date et heure dans   l’un des formats décrits dans le   Sujet DateTimeFormatInfo.

Je ne parviens pas à tester ceci car la version la plus ancienne que je peux créer dans VS2008 est 2.0.

Autres conseils

Le code ne lève pas d'exception car les exceptions sont levées au moment de l'exécution et ce code ne s'exécute jamais. Je sais qu'il ne fonctionne jamais car il est impossible de le compiler avec des guillemets simples pour les littéraux de chaîne. Vous devez utiliser des guillemets doubles pour les chaînes.

Si les guillemets simples ne sont qu'une faute de frappe, veuillez éditer la question et je jetterai un autre coup d'œil.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top