Interfaz en c# de interfaz
Referencia del lenguaje C#
Interfaz (referencia de C#)
Definición: una interfaz es una forma de restricción que solo incluye definiciones de miembros y no incluye contenido de implementación de miembros. .
Propósito: El propósito principal de la interfaz es proporcionar servicios de procesamiento general para clases no relacionadas. Dado que C# solo permite herencia única en la estructura de árbol, es decir, una clase solo puede heredar una clase principal, por lo que el La interfaz es la única forma de tener una clase con más de dos clases base.
Declaración: La forma de declarar una interfaz es similar a la forma de declarar una clase, pero la palabra clave utilizada es interfaz en lugar de clase.
Las interfaces solo contienen firmas para métodos, propiedades, indexadores y eventos. La implementación del método se realiza en la clase que implementa la interfaz, como se muestra en el siguiente ejemplo: interface?ISampleInterface{//interfacemembersvoid?SampleMethod();}class?Implementation?Class:ISampleInterface{//Implementando los miembros de la interfaz. void?ISampleInterface.SampleMethod(){//Implementación del método. Main();}static?void?Main(){//Definir una variable de instancia de interfaz obj. ISampleInterface?obj=new?ImplementationClass();//Llamar al método miembro de (obj). Console.Write(ok);Console.Read();}} La definición de miembros de la interfaz: similar a la definición de miembros de clase, pero tenga en cuenta:
El uso de modificadores de acceso (público, privado, protegido o interno), todos los miembros de la interfaz deben ser públicos;
Los miembros de la interfaz no pueden contener entidades de código;
Los miembros de la interfaz no pueden definir miembros de campo;
Los miembros de la interfaz no pueden definirse utilizando las palabras clave estática, virtual, abstracta o sellada;
Los miembros de definición de tipo están prohibidos.
Si desea ocultar miembros que heredan la interfaz base, puede usar la palabra clave new para definirlos, por ejemplo: interface?IMyBaseInterface{void?DoSomething();}interface?IMyDerivedInterface: IMyBaseInterface{new ?void?DoSomething ();}Observaciones:
Una interfaz puede ser miembro de un espacio de nombres o de una clase y puede contener las firmas de los siguientes miembros:
Indizador de atributos de método Evento Se puede recuperar una interfaz de uno o más Se hereda una interfaz base.
Cuando la lista de tipos base contiene una clase base y una interfaz, la clase base debe ser el primer elemento de la lista.
Una clase que implementa una interfaz puede implementar explícitamente los miembros de la interfaz. No se puede acceder a los miembros de una implementación explícita a través de instancias de clase, sino solo a través de instancias de interfaz, por ejemplo:
Para obtener más detalles y ejemplos de código sobre la implementación de interfaz explícita, consulte Implementación de interfaz explícita (Guía de programación de C#).
Ejemplo
El siguiente ejemplo demuestra la implementación de la interfaz. En este ejemplo, la interfaz IPoint contiene declaraciones de propiedades, que son responsables de establecer y obtener el valor del campo. La clase Point contiene implementaciones de propiedades.
//keyword_interface_2.cs//Implementación de interfazusando?System;interfaceIPoint{//Propertysignatures:intx{get; Set;}inty{get; set;}}class?Point:IPoint{//Fields:private?int?_x;private? int?_y;//Constructor:public?Point(int?x,int?y){_x=x;_y=y;}//Implementación de propiedades:public?int?x{get{return?_x;}set{_x =valor;}}public?int?y{get{return?_y;}set{_y=value;}}}clase?MainClass{static?void?PrintPoint(IPointp){Console.WriteLine(x={0}, y={1},p.x,p.y);}static?void?Main(){Pointp=newPoint(2,3);Console.Write(MyPoint:);PrintPoint(p);}Salida MyPoint:x=2, y=3