Error del compilador CS0192

Actualización: noviembre 2007

Mensaje de error

Los campos del campo de sólo lectura estático 'nombre' no se pueden pasar como out o ref (excepto en un constructor estático)
Fields of static readonly field 'name' cannot be passed ref or out (except in a static constructor)

No se puede pasar un campo (variable) marcado con la palabra clave readonly a un parámetro ref u out excepto dentro de un constructor. Para obtener más información, vea Campos (Guía de programación de C#).

También se puede obtener el error CS0192 si el campo readonly es static y el constructor no está marcado como static.

Ejemplo

En el código siguiente se genera el error CS0192:

// CS0192.cs
class MyClass
{
    public readonly int TestInt = 6;
    static void TestMethod(ref int testInt)
    {
        testInt = 0;
    }

    MyClass()
    {
        TestMethod(ref TestInt);   // OK
    }

    public void PassReadOnlyRef()
    {
        TestMethod(ref TestInt);   // CS0192
    }

    public static void Main()
    {
    }
}