This documentation is archived and is not being maintained.

Compiler Error CS0662

Visual Studio 2008

'method' cannot specify only Out attribute on a ref parameter. Use both In and Out attributes, or neither.

An interface method has a parameter that uses ref with just the Out attribute. A ref parameter that uses the Out attribute must also use the In attribute.

The following sample generates CS0662:

// CS0662.cs
using System.Runtime.InteropServices;

interface I
   void method([Out] ref int i);   // CS0662
   // try one of the following lines instead
   // void method(ref int i);
   // void method([Out, In]ref int i);

class test
   public static void Main()