C# Error CS1625 – Cannot yield in the body of a finally clause

C# Error

CS1625 – Cannot yield in the body of a finally clause

Reason for the Error & Solution

Cannot yield in the body of a finally clause

A yield statement is not allowed in the body of a finally clause. To avoid this error, move the yield statement out of the finally clause.

The following sample generates CS1625:

// CS1625.cs  
using System.Collections;  
  
class C : IEnumerable  
{  
   public IEnumerator GetEnumerator()  
   {  
      try  
      {  
      }  
      finally  
      {  
        yield return this;  // CS1625  
      }  
   }  
}  
  
public class CMain  
{  
   public static void Main() { }  
}