(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Schnittstelleneigenschaften (C#-Programmierhandbuch)

Eigenschaften können für interface (C#-Referenz) deklariert werden. Das folgende Beispiel zeigt einen Accessor für einen Schnittstellenindexer:


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


Der Accessor einer Schnittstelleneigenschaft enthält keinen Text. Ein Accessor wird also verwendet, um anzugeben, ob die Eigenschaft Lese- und Schreibzugriffe gleichzeitig bzw. jeweils nur Schreib- oder Lesezugriffe unterstützt.

In diesem Beispiel hat die IEmployee-Schnittstelle eine Lesen-/Schreiben-Eigenschaft Name und eine Nur-Schreiben-Eigenschaft Counter. Die Employee-Klasse implementiert die IEmployee-Schnittstelle und verwendet diese beiden Eigenschaften. Der Name eines neuen Mitarbeiters und die aktuelle Anzahl der Mitarbeiter werden vom Programm gelesen, und der Mitarbeitername sowie die berechnete Anzahl von Mitarbeitern wird angezeigt.

Sie könnten den vollqualifizierten Namen der Eigenschaft verwenden, die auf die Schnittstelle verweist, in der der Member deklariert ist. Zum Beispiel:


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


Dies wird als Explizite Schnittstellenimplementierung (C#-Programmierhandbuch) bezeichnet. Wenn beispielsweise zwei Schnittstellen, ICitizen und IEmployee, von der Employee-Klasse implementiert sind und beide Schnittstellen über die Name-Eigenschaft verfügen, muss der Schnittstellenmember explizit implementiert werden. Mit der folgenden Eigenschaftendeklaration


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


wird die Name-Eigenschaft für die IEmployee-Schnittstelle implementiert, während mit der Deklaration


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


die Name-Eigenschaft für die ICitizen-Schnittstelle implementiert wird.


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

Enter number of employees: 210

Enter the name of the new employee: Hazem Abolrous

The employee information:

Employee number: 211

Employee name: Hazem Abolrous

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft