Propriedades (guia de programação translation from VPE for Csharp) da interface

Propriedades podem ser declaradas em um interface (translation from VPE for Csharp Reference). Este é um exemplo de um acessador do indexador de interface:

public interface ISampleInterface
{
    // Property declaration:
    string Name
    {
        get;
        set;
    }
}

O acessador de uma propriedade de interface não tem um corpo.Assim, o objetivo os acessadores é indicar se a propriedade é leitura-gravar, somente leitura ou somente gravar.

Exemplo

Neste exemplo, a interface IEmployee tem uma propriedade de leitura-gravar Namee uma propriedade somente leitura Counter. A classe Employee implementa o IEmployee interface e usa essas duas propriedades. O programa lê o nome de um novo funcionário e o número corrente de funcionários e exibe o nome do funcionário e o número de funcionário computada.

Você pode usar o nome totalmente qualificado da propriedade, que faz referência a interface na qual o membro é declarado.Por exemplo:

string IEmployee.Name
{
    get { return "Employee Name"; }
    set { }
}

Isso é chamado de implementação explícita da interface (guia de programação translation from VPE for Csharp). Por exemplo, se a classe Employee é implementar duas interfaces ICitizen e IEmployee e as duas interfaces têm a Name propriedade, a implementação de membro interface explícita será necessária. Ou seja, a seguinte declaração propriedade:

string IEmployee.Name
{
    get { return "Employee Name"; }
    set { }
}

implementa o Name propriedade no IEmployee interface, enquanto a declaração a seguir:

string ICitizen.Name
{
    get { return "Citizen Name"; }
    set { }
}

implementa o Name propriedade no ICitizen interface.

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

Saída de exemplo

Enter number of employees: 210

Enter the name of the new employee: Hazem Abolrous

The employee information:

Employee number: 211

Employee name: Hazem Abolrous

Consulte também

Conceitos

Guia de Programação C#

Referência

Propriedades (Guia de programação do C#)

Usando propriedades (guia de programação translation from VPE for Csharp)

Comparação entre propriedades e os indexadores (guia de programação translation from VPE for Csharp)

Indexadores (guia de programação C#)

Interfaces (guia de programação C#)