This documentation is archived and is not being maintained.

Compiler Error CS0036

An out parameter cannot have the '[In]' attribute

Currently, the In attribute is not permitted on an out parameter.

The following sample generates CS0036:

// CS0036.cs

using System;
using System.Runtime.InteropServices;

public class MyClass
{
   public static void TestOut([In] out char TestChar)   // CS0036
   // try the following line instead
   // public static void TestOut(out char TestChar)
   {
      TestChar = 'b';
      Console.WriteLine(TestChar);
   }

   public static void Main()
   {
      char i;           // variable need not be initialized
      TestOut(out i);   // the arg must be passed as out
      Console.WriteLine(i);
   }
}
Show: