可以在介面中宣告事件,然後在類中實現該事件的引用。在為方法訂閱事件時,可以訂閱介面宣告的事件,也可以訂閱類中的事件。
class輸出如下:inte***ceevent
static
void handlershapechanged(object
sender, customeventargs e)
", e.area);}}
public
class
customeventargs : eventargs
set
}public customeventargs(double
a)
}public
inte***ce
idrawingobject
public
class
shape : idrawingobject
protected
virtual
void
onshapechanged(customeventargs e)}}
事件訪問器類似屬性訪問器,事件訪問器被命名為add和remove,一般情況下不需提供自定義事件訪問器,因為在編譯時會自動新增事件訪問器。
add事件訪問器:當客戶端訂閱該事件,呼叫該訪問器。
remove事件訪問器:當客戶端取消訂閱事件,呼叫該訪問器。
class當類繼承多個介面,介面中有同名事件宣告,則需要借助add和remove事件訪問器顯示介面實現。events : idrawingobject
}remove}}
}
class輸出如下:twointe***ceevent
}public
inte***ce
idrawingobject
public
inte***ce
ishape
public
class
shape : idrawingobject, ishape
}remove}}
//////
明確介面實現
///postdrawevent與ishape.ondraw關聯
/// event
eventhandler ishape.ondraw
}remove}}
//////
同時引用兩個介面事件
/// public
void
draw()
console.writeline(
"raised idrawingobject's event.");
//引用事件postdrawevent
handler =postdrawevent;
if (handler != null
)
console.writeline(
"raised ishape's event.");}}
public
class
subscriber1
void d_ondraw(object
sender, eventargs e)
}public
class
subscriber2
void s_ondraw(object
sender, eventargs e)
}
分類:
實現介面事件
如何 實現介面事件 c 程式設計指南 介面 可宣告事件 下面的示例演示如何在類中實現介面事件。介面事件的實現規則與任何介面方法或屬性的實現規則基本相同。下面的示例演示如何處理以下的不常見情況 您的類是從兩個以上的介面繼承的,每個介面都含有同名事件 在這種情況下,您至少要為其中乙個事件提供顯式介面實現...
C 如何實現介面事件
在類中宣告事件,然後在相應區域中呼叫它。namespace implementinte ceevents public class myeventargs eventargs public class shape idrawingobject protected virtual void onsha...
C 介面事件的實現解析
c 介面事件的實現是如何的呢?下面的c 介面事件示例演示如何在類中實現介面事件。實現c 介面事件的規則與實現任何介面方法或屬性的規則基本相同。c 介面事件例項 在類中實現介面事件,在類中宣告事件,然後在適當的區域呼叫該事件。public inte ceidrawingobject public cl...