Поделиться через


Ошибка компилятора CS0199

Обновлен: Ноябрь 2007

Сообщение об ошибке

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

Переменная, помеченная модификатором readonly, должна содержать тот же модификатор использования static, что и конструктор, в который ее необходимо передать в качестве параметра ref или out. Дополнительные сведения см. в разделе Передача параметров (Руководство по программированию в C#).

Пример

Следующий пример приводит к возникновению ошибки CS0199:

// CS0199.cs
class MyClass
{
    public static readonly int TestInt = 6;

    static void TestMethod(ref int testInt)
    {
        testInt = 0;
    }

    MyClass()
    {
        TestMethod(ref TestInt);   // CS0199, TestInt is static
    }

    public static void Main()
    {
    }
}