Propriétés d'interface (Guide de programmation C#)
Mise à jour : novembre 2007
Les propriétés peuvent être déclarées sur une interface (Référence C#). Exemple d'accesseur d'indexeur d'interface :
public interface ISampleInterface
{
// Property declaration:
string Name
{
get;
set;
}
}
L'accesseur d'une propriété d'interface ne possède pas de corps. Ainsi, les accesseurs ont pour objet d'indiquer si la propriété est en lecture-écriture, en écriture seule ou en lecture seule.
Exemple
Dans cet exemple, l'interface IEmployee possède une propriété en lecture-écriture, Name, et une propriété en lecture seule, Counter. La classe Employee implémente l'interface IEmployee et utilise ces deux propriétés. Le programme lit le nom d'un nouvel employé et le nombre actuel d'employés, puis affiche le nom de l'employé et le nombre d'employés calculé.
Vous pourriez utiliser le nom complet de la propriété, qui fait référence à l'interface dans laquelle le membre est déclaré. Par exemple :
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
C'est ce qu'on appelle Implémentation d'interface explicite (Guide de programmation C#). Par exemple, si la classe Employee implémente deux interfaces ICitizen et IEmployee, et que ces deux interfaces possèdent la propriété Name, l'implémentation explicite des membres d'interface est nécessaire. Ainsi, la déclaration de propriété suivante :
string IEmployee.Name
{
get { return "Employee Name"; }
set { }
}
implémente la propriété Name sur l'interface IEmployee, tandis que la déclaration :
string ICitizen.Name
{
get { return "Citizen Name"; }
set { }
}
implémente la propriété Name sur l'interface 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
Résultat de l'exemple
Enter number of employees: 210
Enter the name of the new employee: Hazem Abolrous
The employee information:
Employee number: 211
Employee name: Hazem Abolrous
Voir aussi
Concepts
Référence
Propriétés (Guide de programmation C#)
Utilisation de propriétés (Guide de programmation C#)
Comparaison entre propriétés et indexeurs (Guide de programmation C#)