首页 > 代码库 > 接口(C# 参考)

接口(C# 参考)

接口只包含方法、属性、事件或索引器的签名。 实现接口的类或结构必须实现接口定义中指定的接口成员。 在下面的示例,类 ImplementationClass必须实现一个不具有参数并返回 void 的名为 SampleMethod 的方法。

示例

 1 interface ISampleInterface 2 { 3     void SampleMethod(); 4 } 5  6 class ImplementationClass : ISampleInterface 7 { 8     // Explicit interface member implementation:  9     void ISampleInterface.SampleMethod()10     {11         // Method implementation.12     }13 14     static void Main()15     {16         // Declare an interface instance.17         ISampleInterface obj = new ImplementationClass();18 19         // Call the member.20         obj.SampleMethod();21     }22 }

 

接口可以是命名空间或类的成员,并且可以包含下列成员的签名:

  • 方法

  • 属性

  • 索引器

  • 事件

一个接口可从一个或多个基接口继承。

当基类型列表包含基类和接口时,基类必须是列表中的第一项。

实现接口的类可以显式实现该接口的成员。 显式实现的成员不能通过类实例访问,而只能通过接口实例访问。

示例

下面的示例演示了接口实现。 在此示例中,接口包含属性声明,类包含实现。 实现 IPoint 的类的任何实例都具有整数属性 x 和 y。

 1 interface IPoint 2 { 3    // Property signatures: 4    int x 5    { 6       get; 7       set; 8    } 9 10    int y11    {12       get;13       set;14    }15 }16 17 class Point : IPoint18 {19    // Fields:20    private int _x;21    private int _y;22 23    // Constructor:24    public Point(int x, int y)25    {26       _x = x;27       _y = y;28    }29 30    // Property implementation:31    public int x32    {33       get34       {35          return _x;36       }37 38       set39       {40          _x = value;41       }42    }43 44    public int y45    {46       get47       {48          return _y;49       }50       set51       {52          _y = value;53       }54    }55 }56 57 class MainClass58 {59    static void PrintPoint(IPoint p)60    {61       Console.WriteLine("x={0}, y={1}", p.x, p.y);62    }63 64    static void Main()65    {66       Point p = new Point(2, 3);67       Console.Write("My Point: ");68       PrintPoint(p);69    }70 }71 // Output: My Point: x=2, y=3

 

  

接口(C# 参考)