This documentation is archived and is not being maintained.

Compiler Error CS1605

Cannot pass 'var' as a ref or out argument because it is read-only

A variable passed as a ref or out parameter is expected to be modified in the called method. Therefore, it is not possible to pass a read-only parameter as ref or out.

The following sample generates CS1605:

// CS1605.cs
class NoWrite
{
   public static void Main()
   {
      int [] a = {1,2,3};
      foreach(int k in a)
      {
         RefMethod(ref k);   // CS1605, can't pass k as ref parameter
      }
   }

   static void RefMethod(ref int i)
   {
   }
}
Show: