署名によって等しい 2 つのメンバーがあるとしますが、1 つは静的で、もう 1 つは静的ではありません。
class Foo
{
public void Test() { Console.WriteLine("instance"); }
public static void Test() { Console.WriteLine("static"); }
}
しかし、そのようなコードを生成すると、コンパイラ エラーが発生します。
型 'Foo' は、同じパラメーター型を持つ 'Test' というメンバーを既に定義しています
しかし、なぜ?
それを正常にコンパイルすると、次のようになります。
Foo.Test()
「静的」を出力する必要がありますnew Foo().Test();
「インスタンス」を出力する必要があります
インスタンス 1 の代わりに静的メンバーを呼び出すことはできません。この場合、別のより妥当なコンパイラ エラーが発生するためです。
インスタンス参照ではメンバー 'Foo.Test()' にアクセスできません。代わりに型名で修飾してください