Как правильно позвонить IEnumerator.Reset
?
В документации сказано:
Для взаимодействия COM предусмотрен метод Reset
,Это не обязательно должно быть реализовано;вместо этого, разработчик может просто выбросить NotSupportedException
.
Хорошо, значит ли это, что я никогда не должен это называть?* заманчиво использовать исключения для управления потоком:
using (enumerator = GetSomeExpensiveEnumerator())
{
while (enumerator.MoveNext()) { ... }
try { enumerator.Reset(); } //Try an inexpensive method
catch (NotSupportedException)
{ enumerator = GetSomeExpensiveEnumerator(); } //Fine, get another one
while (enumerator.MoveNext()) { ... }
}
Это то, как мы должны его использовать?Или мы вообще не должны использовать его из управляемого кода?