Comment puis-je utiliser ienumerator.reset ()?
-
12-11-2019 - |
Question
Quelle est exactement la bonne façon d'appeler IEnumerator.Reset
?
La documentation dit:
La
Reset
La méthode est fournie pour l'interopérabilité COM. Il n'a pas nécessairement besoin d'être mis en œuvre; Au lieu de cela, l'implémentateur peut simplement lancer unNotSupportedException
.
D'accord, cela signifie-t-il que je ne suis pas censé l'appeler?
C'est alors tentant d'utiliser des exceptions pour le contrôle du débit:
using (enumerator = GetSomeExpensiveEnumerator())
{
while (enumerator.MoveNext()) { ... }
try { enumerator.Reset(); } //Try an inexpensive method
catch (NotSupportedException)
{ enumerator = GetSomeExpensiveEnumerator(); } //Fine, get another one
while (enumerator.MoveNext()) { ... }
}
Est-ce ainsi que nous sommes censés l'utiliser? Ou ne sommes-nous pas destinés à l'utiliser à partir du code géré?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow