Edit

Compiler Error CS0112

A static member 'function' in a class or struct cannot be marked as override, virtual, or abstract.

Any method declaration in a class or struct that uses the override, virtual, or abstract keyword cannot also use the static keyword.

Before C# 11, interface members could not combine static with override, virtual, or abstract. Beginning with C# 11, interface methods, properties, events, and operators can combine static with abstract or virtual by using static abstract or static virtual.

For more information, see Methods.

The following sample generates CS0112:

// CS0112.cs  
namespace MyNamespace  
{  
   abstract public class MyClass  
   {  
      public abstract void Foo();  
   }  
   public class MyClass2 : MyClass  
   {  
      override public static void Foo()   // CS0112, remove static keyword  
      {  
      }  
      public static int Main()  
      {  
         return 0;  
      }  
   }  
}