J'écris une méthode qui doit vérifier certains paramètres et s'ils sont validés, retourner un IEnumerable. Par exemple.Iterator & Exceptions nommés
public static IEnumerable<double> GetEnum(int param)
{
if (!IsValidParameter(param))
{
throw new Exception();
}
while(true)
{
yield return 5.0;
}
}
Cependant, je crois que l'évaluation paresseuse, quand je lance mes tests unitaires avec de mauvais paramètres, mais ne pas appeler l'une des méthodes IEnumerable encore, l'exception n'est pas levée.
[Test]
[ExpectedException(typeof(Exception))]
void Test()
{
var ie = GetEnum(bad_param);
}
Je peux arranger les choses en construisant IEnumerable dans une autre fonction (dire Foo), puis vérifiez les paramètres dans GetEnum et appeler Foo, mais est-il une solution sans avoir à créer de multiples fonctions?
Cheers, Jurgen
Je me suis en fait demandé si le compilateur était assez intelligent pour réduire les deux méthodes en un seul bloc d'itérateur. Merci pour le conseil, Marc. –