Schnittstelleneigenschaften (C#-Programmierhandbuch)Interface Properties (C# Programming Guide)

Eigenschaften können für eine Schnittstelle deklariert werden.Properties can be declared on an interface. Das folgende Beispiel zeigt den Accessor für einen Schnittstellenindexer:The following is an example of an interface indexer accessor:

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

Der Accessor einer Schnittstelleneigenschaft enthält keinen Text.The accessor of an interface property does not have a body. Der Zweck eines Accessors besteht darin anzugeben, ob die Eigenschaft gleichzeitig Lese- und Schreibzugriff, nur Lesezugriff oder nur Schreibzugriff besitzt.Thus, the purpose of the accessors is to indicate whether the property is read-write, read-only, or write-only.

BeispielExample

In diesem Beispiel besitzt die Schnittstelle IEmployee eine Lese-/Schreibzugriff-Eigenschaft Name und eine Lesezugriff-Eigenschaft Counter.In this example, the interface IEmployee has a read-write property, Name, and a read-only property, Counter. Die Klasse Employee implementiert die Schnittstelle IEmployee und verwendet diese beiden Eigenschaften.The class Employee implements the IEmployee interface and uses these two properties. Der Name eines neuen Mitarbeiters und die aktuelle Anzahl der Mitarbeiter werden vom Programm gelesen, und der Mitarbeitername sowie die berechnete Mitarbeiteranzahl werden angezeigt.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.

Sie können den vollqualifizierten Namen der Eigenschaft verwenden, der auf die Schnittstelle verweist, in der der Member deklariert wird.You could use the fully qualified name of the property, which references the interface in which the member is declared. Zum Beispiel:For example:

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

Dies wird Explizite Schnittstellenimplementierung genannt.This is called Explicit Interface Implementation. Wenn z.B. die Klasse Employee die beiden Schnittstellen ICitizen und IEmployee implementiert und beide Schnittstellen die Eigenschaft Name besitzen, ist die explizite Implementierung des Schnittstellenmembers erforderlich.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. Das bedeutet, dass die folgende Eigenschaftendeklaration:That is, the following property declaration:

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

die Eigenschaft Name für die Schnittstelle IEmployee implementiert. Dahingegen implementiert die folgende Deklaration:implements the Name property on the IEmployee interface, while the following declaration:

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

die Eigenschaft Name für die Schnittstelle 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
        {
            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

BeispielausgabeSample 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

Siehe auchSee Also

C#-ProgrammierhandbuchC# Programming Guide
EigenschaftenProperties
Verwenden von EigenschaftenUsing Properties
Vergleich zwischen Eigenschaften und IndexernComparison Between Properties and Indexers
IndexerIndexers
SchnittstellenInterfaces