不能在interface定义方法时使用static关键字。如果想在实现接口的类中使用静态方法,那就再封装一次。

解决方案 »

  1.   

    using System;namespace InterfaceStaticMethodTest
    {
    class Class1 : MyInterfaceTest
    {
    public void PrintName()
    {
    Console.WriteLine( "My name is firefox." );
    } public static void PrintMyName()
    {
    Class1 c = new Class1();
    c.PrintName();
    }
    static void Main(string[] args)
    {
    Class1.PrintMyName();
    }
    } interface MyInterfaceTest
    {
    void PrintName();
    }
    }
      

  2.   

    但我是想实现 MyInterfaceTest.PrintMyName 而不是Class1.PrintMyName
      

  3.   

    既然是静态方法,那么你在基类里实现好了。继承类,再重载这个方法好了。
    using System;namespace InterfaceStaticMethodTest
    {
    class Class1 :  MyAbstractClass
    {
    public static void PrintName()
    {
    Console.WriteLine( "My name is Class1." );
    }
    static void Main(string[] args)
    {
    MyAbstractClass.PrintName();
    Class1.PrintName();

    }
    }// interface MyInterfaceTest
    // {
    // void PrintName();
    // } class MyAbstractClass
    {
    public static void PrintName()
    {
    Console.WriteLine("My Name is MyAbstractClass");
    }

    }
    }