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.

The following sample generates CS0180:

// CS0180.cs  
namespace MyNamespace  
{  
   public class MyClass  
   {  
      public extern abstract int Foo(int a);   // CS0180  
  
      public static void Main()  
      {  
      }  
   }  
}