コンパイラ エラー CS0112

クラスまたは構造体の静的メンバー 'function' をオーバーライド、仮想、または抽象としてマークすることはできません。

overridevirtual、または abstract キーワードを使用するクラスまたは構造体のメソッド宣言では、static キーワードも使用できません。

C# 11 より前のバージョンでは、インターフェイス メンバーはstaticoverride、またはvirtualabstractを組み合わせることができませんでした。 C# 11 以降では、インターフェイスメソッド、プロパティ、イベント、および演算子は、staticまたはabstractを使用してvirtualstatic abstractまたはstatic virtualと組み合わせることができます。

詳細については、「 メソッド」を参照してください。

次の例では 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;  
      }  
   }  
}