Propiedades de interfaces (Guía de programación de C#)
Actualización: noviembre 2007
Las propiedades se pueden declarar en una interface (Referencia de C#). A continuación se muestra un ejemplo de descriptor de acceso de un indizador de interfaz:
public interface ISampleInterface
{
// Property declaration:
string Name
{
get;
set;
}
}
Un identificador de acceso de una propiedad de interfaz no tiene cuerpo. Así, el propósito de los descriptores de acceso es indicar si la propiedad es de lectura y escritura, de sólo lectura o de sólo escritura.
Ejemplo
En este ejemplo, la interfaz IEmployee tiene una propiedad de lectura y escritura, Name, y una propiedad de sólo lectura, Counter. La clase Employee implementa la interfaz IEmployee y utiliza las dos propiedades. El programa lee el nombre de un empleado nuevo y el número actual de empleados, y muestra como resultado el nombre del empleado y el nuevo número de empleados calculado.
Se podría utilizar el nombre completo de la propiedad, que hace referencia a la interfaz en la que se declara el miembro. Por ejemplo:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
Esto se denomina Implementación explícita de interfaz (Guía de programación de C#). Por ejemplo, si la clase Employee implementa dos interfaces ICitizen y IEmployee, y ambas tienen la propiedad Name, será necesario implementar explícitamente el miembro de interfaz. Es decir, la siguiente declaración de propiedad:
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
implementa la propiedad Name en la interfaz IEmployee, mientras que la declaración:
string ICitizen.Name
{
get { return "Citizen Name"; }
set { }
}
implementa la propiedad Name en la interfaz ICitizen.
interface IEmployee
{
string Name
{
get;
set;
}
int Counter
{
get;
}
}
public class Employee : IEmployee
{
public static int numberOfEmployees;
private string name;
public string Name // read-write instance property
{
get
{
return name;
}
set
{
name = value;
}
}
private int counter;
public int Counter // read-only instance property
{
get
{
return counter;
}
}
public Employee() // constructor
{
counter = ++counter + numberOfEmployees;
}
}
class TestEmployee
{
static void Main()
{
System.Console.Write("Enter number of employees: ");
Employee.numberOfEmployees = int.Parse(System.Console.ReadLine());
Employee e1 = new Employee();
System.Console.Write("Enter the name of the new employee: ");
e1.Name = System.Console.ReadLine();
System.Console.WriteLine("The employee information:");
System.Console.WriteLine("Employee number: {0}", e1.Counter);
System.Console.WriteLine("Employee name: {0}", e1.Name);
}
}
210
Hazem Abolrous
Resultados del ejemplo
Enter number of employees: 210
Enter the name of the new employee: Hazem Abolrous
The employee information:
Employee number: 211
Employee name: Hazem Abolrous
Vea también
Conceptos
Referencia
Propiedades (Guía de programación de C#)
Utilizar propiedades (Guía de programación de C#)
Comparación entre propiedades e indizadores (Guía de programación de C#)