1. 程式人生 > 程式設計 >c#如何顯式實現介面成員

c#如何顯式實現介面成員

本示例宣告一個介面IDimensions 和一個類 Box,顯式實現了介面成員 GetLength GetWidth。 通過介面例項 dimensions 訪問這些成員。

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 = 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
*/

可靠程式設計

  • 請注意,註釋掉了 Main 方法中以下行,因為它們將產生編譯錯誤。 顯式實現的介面成員不能從類例項訪問:
//System.Console.WriteLine("Length: {0}",box1.GetLength());
//System.Console.WriteLine("Width: {0}",box1.GetWidth());
  • 另請注意 Main 方法中的以下行成功輸出了框的尺寸,因為這些方法是從介面例項呼叫的:
System.Console.WriteLine("Length: {0}",dimensions.GetLength());
System.Console.WriteLine("Width: {0}",dimensions.GetWidth());

以上就是c#如何顯式實現介面成員的詳細內容,更多關於c# 顯式實現介面成員的資料請關注我們其它相關文章!