欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#显式地实现接口成员的方法

程序员文章站 2023-11-05 23:53:34
本文实例讲述了c#显式地实现接口成员的方法。分享给大家供大家参考。具体实现方法如下: // explicit1.cs interface idimensions...

本文实例讲述了c#显式地实现接口成员的方法。分享给大家供大家参考。具体实现方法如下:

// explicit1.cs
interface idimensions 
{
  float length();
  float width();
}
class box : idimensions 
{
  float lengthinches;
  float widthinches;
  public box(float length, float width) 
  {
   lengthinches = length;
   widthinches = width;
  }
  // 显式接口成员实现:
  float idimensions.length() 
  {
   return lengthinches;
  }
  // 显式接口成员实现:
  float idimensions.width() 
  {
   return widthinches;   
  }
  public static void main() 
  {
   // 声明类实例“mybox”:
   box mybox = new box(30.0f, 20.0f);
   // 声明接口实例“mydimensions”:
   idimensions mydimensions = (idimensions) mybox;
   // 打印出盒子的尺寸:
   /* 下列注释行将产生编译 
     错误,因为这些行试图从类实例访问显式实现的
     接口成员:          */
   //system.console.writeline("length: {0}", mybox.length());
   //system.console.writeline("width: {0}", mybox.width());
   /* 从接口的实例调用方法,
     以打印出盒子的尺寸:             */
   system.console.writeline("length: {0}", mydimensions.length());
   system.console.writeline("width: {0}", mydimensions.width());
  }
}

代码2:

// explicit2.cs
// 声明英制单位接口:
interface ienglishdimensions
{
  float length();
  float width();
}
// 声明公制单位接口:
interface imetricdimensions
{
  float length();
  float width();
}
// 声明实现以下两个接口的“box”类:
// ienglishdimensions 和 imetricdimensions:
class box : ienglishdimensions, imetricdimensions
{
  float lengthinches;
  float widthinches;
  public box(float length, float width)
  {
   lengthinches = length;
   widthinches = width;
  }
// 显式实现 ienglishdimensions 的成员:
  float ienglishdimensions.length()
  {
   return lengthinches;
  }
  float ienglishdimensions.width()
  {
   return widthinches;   
  }
// 显式实现 imetricdimensions 的成员:
  float imetricdimensions.length()
  {
   return lengthinches * 2.54f;
  }
  float imetricdimensions.width()
  {
   return widthinches * 2.54f;
  }
  public static void main()
  {
   // 声明类实例“mybox”:
   box mybox = new box(30.0f, 20.0f);
   // 声明英制单位接口的实例:
   ienglishdimensions edimensions = (ienglishdimensions) mybox;
   // 声明公制单位接口的实例:
   imetricdimensions mdimensions = (imetricdimensions) mybox;
   // 以英制单位打印尺寸:
   system.console.writeline("length(in): {0}", edimensions.length());
   system.console.writeline("width (in): {0}", edimensions.width());
   // 以公制单位打印尺寸:
   system.console.writeline("length(cm): {0}", mdimensions.length());
   system.console.writeline("width (cm): {0}", mdimensions.width());
  }
}

希望本文所述对大家的c#程序设计有所帮助。