(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
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Gewusst wie: Explizites Implementieren von Schnittstellenmembern (C#-Programmierhandbuch)

In diesem Beispiel werden die SchnittstelleIDimensions und die Klasse Box deklariert, womit die Schnittstellenmember getLength und getWidth explizit implementiert werden. Auf die Member wird über die dimensions-Schnittstelleninstanz zugegriffen.


interface IDimensions
{
    float getLength();
    float getWidth();
}

class Box : IDimensions
{
    float lengthInches;
    float widthInches;

    Box(float length, float width)
    {
        lengthInches = length;
        widthInches = width;
    }
    // Explicit interface member implementation: 
    float IDimensions.getLength()
    {
        return lengthInches;
    }
    // Explicit interface member implementation:
    float IDimensions.getWidth()
    {
        return widthInches;
    }

    static void Main()
    {
        // Declare a class instance box1:
        Box box1 = new Box(30.0f, 20.0f);

        // Declare an interface instance dimensions:
        IDimensions dimensions = (IDimensions)box1;

        // The following commented lines would produce compilation 
        // errors because they try to access an explicitly implemented
        // interface member from a class instance:                   
        //System.Console.WriteLine("Length: {0}", box1.getLength());
        //System.Console.WriteLine("Width: {0}", box1.getWidth());

        // Print out the dimensions of the box by calling the methods 
        // from an instance of the interface:
        System.Console.WriteLine("Length: {0}", dimensions.getLength());
        System.Console.WriteLine("Width: {0}", dimensions.getWidth());
    }
}
/* Output:
    Length: 30
    Width: 20
*/


  • Beachten Sie, dass die folgenden Zeilen in der Main-Methode auskommentiert sind, da sie Kompilierungsfehler verursachen würden. Auf einen explizit implementierten Schnittstellenmember kann nicht über eine Klassen-Instanz zugegriffen werden:

    
    //System.Console.WriteLine("Length: {0}", box1.getLength());
    //System.Console.WriteLine("Width: {0}", box1.getWidth());
    
    
    
  • Beachten Sie auch die folgenden Zeilen in der Main-Methode. Durch diese Zeilen werden die Abmessungen des Felds erfolgreich ausgegeben, da die Methoden von einer Instanz der Schnittstelle aufgerufen werden:

    
    System.Console.WriteLine("Length: {0}", dimensions.getLength());
    System.Console.WriteLine("Width: {0}", dimensions.getWidth());
    
    
    
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.