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()
{
}
}