Compiler Error CS0180

'member' cannot be both extern and abstract

The abstract and extern keywords are mutually exclusive. The extern keyword means that the member is defined outside the file, and abstract means that the implementation is provided in a derived class. For more information, see Methods (C# Programming Guide).

The following sample generates CS0180:

// CS0180.cs
namespace MyNamespace
{
   public class MyClass
   {
      public extern abstract int MyMethod(int a);   // CS0180

      public static void Main()
      {
      }
   }
}