Propriétés d'interface (Guide de programmation C#)Interface Properties (C# Programming Guide)

Des propriétés peuvent être déclarées dans une interface.Properties can be declared on an interface. L’exemple ci-dessous porte sur un accesseur de propriété d’interface :The following is an example of an interface property accessor:

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

L’accesseur d’une propriété d’interface n’a pas de corps.The accessor of an interface property does not have a body. Par conséquent, les accesseurs visent à indiquer si la propriété est en lecture-écriture, en lecture seule ou en écriture seule.Thus, the purpose of the accessors is to indicate whether the property is read-write, read-only, or write-only.

ExempleExample

Dans cet exemple, l’interface IEmployee a une propriété en lecture-écriture, Name, et une propriété en lecture seule, Counter.In this example, the interface IEmployee has a read-write property, Name, and a read-only property, Counter. La classe Employee implémente l’interface IEmployee et utilise ces deux propriétés.The class Employee implements the IEmployee interface and uses these two properties. Le programme lit le nom d’un nouvel employé et le nombre actuel d’employés et affiche le nom de l’employé et le nombre d’employés calculé.The program reads the name of a new employee and the current number of employees and displays the employee name and the computed employee number.

Vous pouvez utiliser le nom qualifié complet de la propriété, qui fait référence à l’interface dans laquelle le membre est déclaré.You could use the fully qualified name of the property, which references the interface in which the member is declared. Par exemple :For example:

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

Ceci s’appelle une implémentation d’interface explicite.This is called Explicit Interface Implementation. Par exemple, si la classe Employee implémente deux interfaces, ICitizen et IEmployee, et que les deux interfaces ont la même propriété Name, l’implémentation de membre d’interface explicite est nécessaire.For example, if the class Employee is implementing two interfaces ICitizen and IEmployee and both interfaces have the Name property, the explicit interface member implementation will be necessary. Autrement dit, la déclaration de propriété suivante :That is, the following property declaration:

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

implémente la propriété Name dans l’interface IEmployee, alors que la déclaration suivante :implements the Name property on the IEmployee interface, while the following declaration:

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

implémente la propriété Name dans l’interface ICitizen.implements the Name property on the 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 => _name;                
        set => _name = value;
    }

    private int _counter;
    public int Counter  // read-only instance property
    {
        get => _counter;
    }

    // constructor
    public Employee() => _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'exempleSample output

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 aussiSee also