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


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

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

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

Невозможно передать поля переменной 'variable' как аргумент ref или out, потому что она имеет допускающий только чтение тип 'readonly variable type'
Cannot pass fields of 'variable' as a ref or out argument because it is a 'readonly variable type'

Эта ошибка происходит при попытке передать функции член переменной foreach, переменной using или переменной fixed в качестве аргумента ref или out. Так как в данном контексте эти переменные считаются допускающими только чтение, это недопустимо.

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

// CS1655.cs
struct S 
{
   public int i;
}

class CMain
{
  static void f(ref int iref)
  {
  }
  
  public static void Main()
  {
     S[] sa = new S[10];
     foreach(S s in sa)
     {
        CMain.f(ref s.i);  // CS1655
     }
  }
}