Come posso usare ienumerator.reset ()?
-
12-11-2019 - |
Domanda
Com'è esattamente il modo giusto di chiamare IEnumerator.Reset
?
La documentazione dice:
Il
Reset
Il metodo è fornito per l'interoperabilità COM. Non deve necessariamente essere implementato; Invece, l'implementatore può semplicemente lanciare unNotSupportedException
.
Ok, così significa che non dovrei mai chiamarlo?
È Così allettante di utilizzare le eccezioni per il controllo del flusso:
using (enumerator = GetSomeExpensiveEnumerator())
{
while (enumerator.MoveNext()) { ... }
try { enumerator.Reset(); } //Try an inexpensive method
catch (NotSupportedException)
{ enumerator = GetSomeExpensiveEnumerator(); } //Fine, get another one
while (enumerator.MoveNext()) { ... }
}
È così che dovremmo usarlo? O non dobbiamo usarlo dal codice gestito?
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow