访问接口方法

时间:2014-07-11 06:39:13

标签: c#

实际上下面的代码是接口的简单示例。但它显示错误' PublicDemo.DemoPublic'没有实现接口成员' PublicDemo.demo1.two()'。 ' PublicDemo.DemoPublic.two()'无法实现接口成员,因为它不是公共的。

namespace PublicDemo
{
public interface demo
{
    void Demo();
}
public interface demo1:demo
{
    void one();
    void two();
}


class DemoPublic :demo1
{
    protected internal string variable;

   public void Demo()
    {
        Console.WriteLine("{0}", variable);

    }
    public void one()
    {
        Console.WriteLine("this is one method");
    }
    protected void two()
    {
        Console.WriteLine("this is two method");
    }


}


class Excute : DemoPublic
{
    static void Main(string[] args)
    {
        Excute Dp = new Excute();
        Dp.variable = Console.ReadLine();
        Dp.Demo();
        Dp.one();
        Dp.two();

        Console.ReadKey();

    }

}
}

我需要它为什么不起作用

4 个答案:

答案 0 :(得分:1)

更改

protected void two()
{
    Console.WriteLine("this is two method");
}

public void two()
{
    Console.WriteLine("this is two method");
}

答案 1 :(得分:1)

你自己回答了这个问题:

  

'PublicDemo.DemoPublic.two()'无法实现接口成员,因为它不是公共的。

答案是界面成员必须公开。

答案 2 :(得分:0)

将保护更改为公共。您已定义公共接口。一旦定义了公共接口,接口中的合同也将默认为公共。

public void two()
{
    Console.WriteLine("this is two method");
}

答案 3 :(得分:0)

这意味着什么。你的两个方法都受到保护。如果从界面实现,它需要是公开的。

  

protected void two(){

    Console.WriteLine("this is two method");
}

将其更改为公开