Propriedades de interface (Guia de Programação em C#)
As propriedades podem ser declaradas em um interface (Referência de C#). 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. Portanto, é a finalidade dos acessadores indicar se a propriedade é leitura-gravação, somente leitura ou somente para gravação.
Exemplo
Neste exemplo, a interface IEmployee tem uma propriedade de leitura-gravação, 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 atual 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 de interface explícita (Guia de Programação em C#). Por exemplo, se a classe Employee está implementando duas interfaces ICitizen e IEmployee e ambas as interfaces têm a Name propriedade, a implementação de um membro de interface explícita será necessária. Ou seja, a seguinte declaração de 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
Referência
Propriedades (Guia de Programação em C#)
Usando propriedades (Guia de Programação em C#)
Comparação entre propriedades e indexadores (Guia de Programação em C#)
Indexadores (Guia de Programação em C#)
Interfaces (Guia de Programação em C#)