Como posso usar IEnumerator.Reset ()?
Como exatamente é a maneira correta de ligar paraIEnumerator.Reset
?
A documentação diz:
OReset
método @ é fornecido para interoperabilidade COM. Não precisa necessariamente ser implementado; em vez disso, o implementador pode simplesmente lançar umNotSupportedException
.
Ok, então isso significa que eu não devo chamá-lo?
Estáassi tentador a usar exceções para controle de fluxo:
using (enumerator = GetSomeExpensiveEnumerator())
{
while (enumerator.MoveNext()) { ... }
try { enumerator.Reset(); } //Try an inexpensive method
catch (NotSupportedException)
{ enumerator = GetSomeExpensiveEnumerator(); } //Fine, get another one
while (enumerator.MoveNext()) { ... }
}
É assim que devemos usá-lo? Ou não devemos usá-lo de código gerenciado?