Compilerfehler CS0192

Aktualisiert: November 2007

Fehlermeldung

An Felder des statischen schreibgeschützten Feldes "Name" kann kein Verweis und keine Ausgabe übergeben werden (Ausnahme: in einem statischen Konstruktor).
Fields of static readonly field 'name' cannot be passed ref or out (except in a static constructor)

Ein mit dem readonly-Schlüsselwort markiertes Feld (eine mit diesem Schlüsselwort markierte Variable) kann nur innerhalb eines Konstruktors an einen ref-Parameter oder einen out-Parameter übergeben werden. Weitere Informationen finden Sie unter Felder (C#-Programmierhandbuch).

CS0192 wird auch ausgegeben, wenn das Feld readonly als static deklariert wurde und der Konstruktor nicht als static gekennzeichnet ist.

Beispiel

Im folgenden Beispiel wird CS0192 generiert:

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