Compartir a través de


Propiedades de interfaces (Guía de programación de C#)

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 de interfaz explícita (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

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#)

Indizadores (Guía de programación de C#)

Interfaces (Guía de programación de C#)

Conceptos

Guía de programación de C#