實現介面事件,在介面中實現事件

2021-07-10 09:34:30 字數 1848 閱讀 4201

可以在介面中宣告事件,然後在類中實現該事件的引用。在為方法訂閱事件時,可以訂閱介面宣告的事件,也可以訂閱類中的事件。

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

events : idrawingobject

}remove}}

}

當類繼承多個介面,介面中有同名事件宣告,則需要借助add和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...