国产探花免费观看_亚洲丰满少妇自慰呻吟_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
   }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枣庄市| 阿勒泰市| 云龙县| 建阳市| 洞头县| 阿荣旗| 望江县| 宕昌县| 仙游县| 兴山县| 连城县| 九江市| 镇康县| 三亚市| 治县。| 颍上县| 天镇县| 嘉义市| 海阳市| 华坪县| 北票市| 卫辉市| 云阳县| 永清县| 怀化市| 迁西县| 潮安县| 兴宁市| 当雄县| 屯昌县| 海宁市| 广河县| 和硕县| 苏尼特左旗| 大丰市| 河北区| 海原县| 东丰县| 周口市| 福贡县| 柳州市|