访问接口方法

本文关键字:方法 接口 访问 | 更新日期: 2023-09-27 18:12:21

实际上下面的代码是一个简单的界面示例。但是它显示了一个错误'PublicDemo。DemoPublic'没有实现接口成员'PublicDemo.demo1.two()'。' publicdemo . demoppublic .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();
    }
}
}

我想知道为什么它不工作

访问接口方法

变化

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

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

你自己回答了这个问题:

' publicdemo . demoppublic .two()'不能实现接口成员,因为它不是公共的。

答案是接口成员必须是公共的

说到做到。你的两个方法是受保护的。如果从接口实现,它需要是公共的。

protected void two(){

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

改为public

将Protected更改为Public。您已经定义了一个公共接口。一旦你定义了公共接口,接口中的契约在默认情况下也是公共的。

public void two()
{
    Console.WriteLine("this is two method");
}
相关文章: