Поделиться через


Ошибка компилятора CS1631

Обновлен: Ноябрь 2007

Сообщение об ошибке

Нельзя использовать оператор yield в теле конструкции catch
Cannot yield a value in the body of a catch clause

Вызывать оператор "yield" из тела предложения "catch" не разрешается. Чтобы избежать возникновения этой ошибки, переместите оператор "yield" за пределы предложения "catch".

Следующий пример приводит к созданию ошибки CS1631:

// CS1631.cs
using System;
using System.Collections;

public class C : IEnumerable
{
   public IEnumerator GetEnumerator() 
   {
      try
      {
      }
      catch(Exception e)
      {
        yield return this;  // CS1631
      }
   }  

   public static void Main() 
   {
   }
}