interface (Referencia de C#)
Actualización: noviembre 2007
Una interfaz contiene sólo las firmas de métodos, propiedades, eventos o indizadores. La implementación de los miembros se hace en la clase o la estructura que implementa la interfaz, como se muestra en el ejemplo siguiente:
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(); } }
Una interfaz puede ser miembro de un espacio de nombres o de una clase, y puede contener firmas de los siguientes miembros:
Una interfaz puede heredar de una o varias interfaces base.
Cuando una lista de tipos base contiene una clase base e interfaces, la clase base debe aparecer primero en la lista.
Una clase que implementa una interfaz puede implementar explícitamente miembros de esa interfaz. A un miembro implementado explícitamente sólo se puede tener acceso mediante una instancia de la interfaz, y no mediante una instancia de la clase.
Para obtener información más detallada y ejemplos de código de la implementación de interfaces explícita, vea Implementación explícita de interfaz (Guía de programación de C#).
En el siguiente ejemplo, se muestra la implementación de una interfaz. En este ejemplo, la interfaz contiene la declaración de propiedad y la clase contiene la implementación.
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
Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.
-
1.9 Interfaces
-
3.4.5 Miembros de interfaz
-
4.2.4 Tipos de interfaz
-
10.1.2.2 Implementaciones de interfaz
-
11.2 Interfaces de estructura
-
13 Interfaces