Udostępnij za pośrednictwem


Interfejs właściwości (Podręcznik programowania C#)

Właściwości może być deklarowany na Interfejs (C# odniesienia).Poniżej przedstawiono przykład akcesor indeksatora interfejsu:

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

Akcesor właściwości interfejsu nie ma organu.W ten sposób celem akcesorów jest wskazanie, czy właściwość jest odczytu i zapisu, tylko do odczytu lub tylko do zapisu.

Przykład

W tym przykładzie interfejs IEmployee ma właściwość odczytu i zapisu, Nameoraz właściwości tylko do odczytu, Counter.Klasa Employee implementuje IEmployee interfejs i korzysta z tych dwóch właściwości.Program odczytuje nazwę nowego pracownika i bieżącą liczbę pracowników i wyświetla nazwisko pracownika oraz numer pracownika obliczanej.

Można użyć w pełni kwalifikowanej nazwy właściwość, która odwołuje się do interfejsu, w którym jest zadeklarowany jako członek.Na przykład:

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

Jest to tak zwane Jawne implementacji interfejsu (Podręcznik programowania C#).Na przykład jeśli klasy Employee jest implementowanie interfejsów dwóch ICitizen i IEmployee i oba interfejsy mają Name właściwość, jawnej implementacji Członkowskie będzie konieczne.Oznacza to, że następujące oświadczenie właściwości:

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

implementuje Name właściwość IEmployee interfejsu podczas następującą deklarację:

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

implementuje Name właściwość ICitizen interfejsu.

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

Przykładowe dane wyjściowe

Enter number of employees: 210

Enter the name of the new employee: Hazem Abolrous

The employee information:

Employee number: 211

Employee name: Hazem Abolrous

Zobacz też

Informacje

Właściwości (Podręcznik programowania C#)

Za pomocą właściwości (Podręcznik programowania C#)

Porównanie właściwości i indeksatory (Podręcznik programowania C#)

Indeksatory (Podręcznik programowania C#)

Interfejsy (Podręcznik programowania C#)

Koncepcje

Podręcznik programowania C#