国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C# 語言規范--1.9 接口

2024-07-21 02:29:59
字體:
來源:轉載
供稿:網友

    一個接口定義一個協定。實現接口的類或結構必須遵守其協定。接口可以包含方法、屬性、索引器和事件作為成員。

    示例

interface iexample
{
   string this[int index] { get; set; }
   event eventhandler e;
   void f(int value);
   string p { get; set; }
}
public delegate void eventhandler(object sender, eventargs e);

    顯示了一個包含索引器、事件 e、方法 f 和屬性 p 的接口。

    接口可以使用多重繼承。在下面的示例中,

interface icontrol
{
   void paint();
}
interface itextbox: icontrol
{
   void settext(string text);
}
interface ilistbox: icontrol
{
   void setitems(string[] items);
}
interface icombobox: itextbox, ilistbox {}

    接口 icombobox 同時從 itextbox 和 ilistbox 繼承。

    類和結構可以實現多個接口。在下面的示例中,

interface idatabound
{
   void bind(binder b);
}
public class editbox: control, icontrol, idatabound
{
   public void paint() {...}
   public void bind(binder b) {...}
}

    類 editbox 從類 control 派生,并且同時實現 icontrol 和 idatabound。

    在前面的示例中,icontrol 接口中的 paint 方法和 idatabound 接口中的 bind 方法是使用 editbox 類的公共成員實現的。c# 提供了另一種方式來實現這些方法,使得實現類避免將這些成員設置成公共的。這就是:接口成員可以用限定名來實現。例如,在 editbox 類中將 paint 方法命名為 icontrol.paint,將 bind 方法命名為 idatabound.bind 方法。

public class editbox: icontrol, idatabound
{
   void icontrol.paint() {...}
   void idatabound.bind(binder b) {...}
}

    用這種方式實現的接口成員稱為顯式接口成員,這是因為每個成員都顯式地指定要實現的接口成員。顯式接口成員只能通過接口來調用。例如,在 editbox 中實現的 paint 方法只能通過強制轉換為 icontrol 接口來調用。

class test
{
   static void main() {
      editbox editbox = new editbox();
      editbox.paint();   // error: no such method
      icontrol control = editbox;
      control.paint();   // calls editbox's paint implementation
   }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大安市| 兰考县| 重庆市| 玛纳斯县| 雷州市| 宁安市| 济阳县| 青川县| 吉木乃县| 闽侯县| 津市市| 邢台县| 济宁市| 当雄县| 高唐县| 丹棱县| 浦城县| 绥阳县| 怀柔区| 蒙城县| 天水市| 辰溪县| 杭锦旗| 福建省| 大同县| 青河县| 亚东县| 长泰县| 永康市| 昌吉市| 五大连池市| 镇平县| 常州市| 德化县| 区。| 太湖县| 盐边县| 济源市| 方山县| 石狮市| 斗六市|