Try...finally C# with Example



Try...finally C# with Example

If an iterator method has a yield inside a try...finally, then the returned IEnumerator will execute the finally 
statement when Dispose is called on it, as long as the current point of evaluation is inside the try block. 
Given the function: 
private IEnumerable Numbers() 
{ 
yield return 1; 
try 
{ 
yield return 2; 
yield return 3; 
} 
finally 
{ 
Console.WriteLine("Finally executed"); 
} 
} 
When calling: 
private void DisposeOutsideTry() 
{ 
var enumerator = Numbers().GetEnumerator(); 
enumerator.MoveNext(); 
Console.WriteLine(enumerator.Current); 
enumerator.Dispose(); 
} 
Then it prints: 
1 
View Demo 
When calling: 
private void DisposeInsideTry() 
{ 
var enumerator = Numbers().GetEnumerator(); 
enumerator.MoveNext(); 
Console.WriteLine(enumerator.Current); 
enumerator.MoveNext(); 
Console.WriteLine(enumerator.Current); 
 

enumerator.Dispose(); 
} 
Then it prints: 
1 
2 
Finally executed 
View Demo 

0 Comment's

Comment Form

Submit Comment