猿教程 Logo

C# 接口

C#中的接口仅包含方法,属性和事件的声明,但不包含实现。 它留给实现接口的类为接口的所有成员提供实现。 接口使得程序易于维护。

在C#中,可以使用interface关键字定义接口。 例如,以下是记录字符串消息的简单接口:

接口定义:

interface ILog
{
    void Log(string msgToLog);
}

现在,不同的类可以通过提供Log()方法的实现来实现ILog,例如,ConsoleLog类将字符串记录在控制台上,而FileLog将字符串记录到文本文件中。

使用  :<接口名称> 语法实现接口。

实现接口案例:


class ConsoleLog: ILog
{
    public void Log(string msgToPrint)
    {
        Console.WriteLine(msgToPrint);
    }
}
class FileLog :ILog
{
    public void Log(string msgToPrint)
    {
            File.AppendText(@"C:\Log.txt").Write(msgToPrint);
    }
}

现在,您可以实例化ConsoleLog或FileLog类的对象:

ILog log = new ConsoleLog();
//或者
ILog log = new FileLog();

实现接口

您可以通过为接口名称添加方法名称来显式实现接口,如下所示:

class ConsoleLog: ILog
{
    public void ILog.Log(string msgToPrint) // explicit implementation
    {
        Console.WriteLine(msgToPrint);
    }
}

当类实现多个接口时,显式实现是有用的,因此它更可读并消除了混淆。 如果接口具有相同的方法名称,它也是有用的。

访问MSDN查看有关接口的更多信息。

要点
  1. 接口只包含方法,事件和属性的声明。

  2. 接口可以隐式或显式实现。

  3. 接口不能包含私有成员。 默认情况下,所有成员都是公用的。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/CSharp/csharp-interface.html