企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 接口(C# 参考) 接口只包含[方法](https://msdn.microsoft.com/zh-CN/library/ms173114.aspx)、[属性](https://msdn.microsoft.com/zh-CN/library/x9fsa0sw.aspx)、[事件](https://msdn.microsoft.com/zh-CN/library/awbftdfh.aspx)或[索引器](https://msdn.microsoft.com/zh-CN/library/6x16t2tx.aspx)的签名。 实现接口的类或结构必须实现接口定义中指定的接口成员。 在下面的示例,类 ImplementationClass 必须实现一个不具有参数并返回 **void** 的名为 SampleMethod 的方法。 有关更多信息和示例,请参见[接口(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms173156.aspx)。 ## 示例 ``` interface ISampleInterface { void SampleMethod(); } class ImplementationClass : ISampleInterface { // Explicit interface member implementation: void ISampleInterface.SampleMethod() { // Method implementation. } static void Main() { // Declare an interface instance. ISampleInterface obj = new ImplementationClass(); // Call the member. obj.SampleMethod(); } } ``` 接口可以是命名空间或类的成员,并且可以包含下列成员的签名: * [方法](https://msdn.microsoft.com/zh-CN/library/ms173114.aspx) * [属性](https://msdn.microsoft.com/zh-CN/library/w86s7x04.aspx) * [索引器](https://msdn.microsoft.com/zh-CN/library/2549tw02.aspx) * [事件](https://msdn.microsoft.com/zh-CN/library/8627sbea.aspx) 一个接口可从一个或多个基接口继承。 当基类型列表包含基类和接口时,基类必须是列表中的第一项。 实现接口的类可以显式实现该接口的成员。 显式实现的成员不能通过类实例访问,而只能通过接口实例访问。 有关显式接口实现的更多详细信息和代码示例,请参见[显式接口实现(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms173157.aspx)。 ## 示例 下面的示例演示了接口实现。 在此示例中,接口包含属性声明,类包含实现。 实现 IPoint 的类的任何实例都具有整数属性 x 和 y。 ``` interface IPoint { // Property signatures: int x { get; set; } int y { get; set; } } class Point : IPoint { // Fields: private int _x; private int _y; // Constructor: public Point(int x, int y) { _x = x; _y = y; } // Property implementation: public int x { get { return _x; } set { _x = value; } } public int y { get { return _y; } set { _y = value; } } } class MainClass { static void PrintPoint(IPoint p) { Console.WriteLine("x={0}, y={1}", p.x, p.y); } static void Main() { Point p = new Point(2, 3); Console.Write("My Point: "); PrintPoint(p); } } // Output: My Point: x=2, y=3 ``` ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-CN/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [C# 关键字](https://msdn.microsoft.com/zh-CN/library/x53a06bb.aspx) [引用类型(C# 参考)](https://msdn.microsoft.com/zh-CN/library/490f96s2.aspx) [接口(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms173156.aspx) [使用属性(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/w86s7x04.aspx) [使用索引器(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/2549tw02.aspx) [class(C# 参考)](https://msdn.microsoft.com/zh-CN/library/0b0thckt.aspx) [struct(C# 参考)](https://msdn.microsoft.com/zh-CN/library/ah19swz4.aspx) [接口(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms173156.aspx)