Error del compilador CS0236

Actualización: noviembre 2007

Mensaje de error

Un inicializador de campo no puede hacer referencia al campo no estático, método o propiedad 'campo'
A field initializer cannot reference the nonstatic field, method, or property 'field'

Los campos de instancia no pueden usarse para inicializar otros campos de instancia fuera de un método. Si intenta inicializar una variable fuera de un método, considere la posibilidad de realizar la inicialización dentro del constructor de clase. Para obtener más información, vea Métodos (Guía de programación de C#).

El código siguiente genera el error CS0236:

// CS0236.cs
public class MyClass
{
   public int i = 5;
   public int j = i;  // CS0236
   public int k;      // initialize in constructor

   MyClass()
   {
      k = i;
   }

   public static void Main()
   {
   }
}