CS0177 de erro do compilador

Mensagem de erro

O parâmetro out 'parameter' deve ser atribuído antes que o controle saia do método corrente

Um parâmetro marcado com o check-out palavra-chave não foi atribuído um valor no corpo do método.Para mais informações, consulte: Passando parâmetros (Guia de programação C#).

O exemplo a seguir gera CS0177:

// CS0177.cs
public class MyClass
{
   public static void Foo(out int i)   // CS0177
   {
   // uncomment the following line to resolve this error
   //   i = 0;
   }

   public static void Main()
   {
       int x = -1;
       Foo(out x);
   }
}