Ошибка компилятора CS0192Compiler Error CS0192

Поля доступного только для чтения статического поля "имя" могут передаваться как параметры с ключевым словом ref или out только в статическом конструктореFields of static readonly field 'name' cannot be passed ref or out (except in a static constructor)

Поле (переменная), помеченная ключевым словом readonly , не может быть передано параметру с ключевым словом ref или out , кроме как внутри конструктора.A field (variable) marked with the readonly keyword cannot be passed either to a ref or out parameter except inside a constructor. Дополнительные сведения см. в разделе Поля.For more information, see Fields.

Ошибка CS0192 также возникает, если поле readonly является static (статическим), а конструктор не помечен как static.CS0192 also results if the readonly field is static and the constructor is not marked static.

ПримерExample

Следующий пример приводит к возникновению ошибки CS0192:The following sample generates 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()  
    {  
    }  
}