C 如何實現介面事件

2021-10-14 04:12:21 字數 1730 閱讀 2692

在類中宣告事件,然後在相應區域中呼叫它。

namespace implementinte***ceevents  

public

class

myeventargs

:eventargs

public

class

shape

:idrawingobject

protected

virtual

void

onshapechanged

(myeventargs e)

}}

下面的示例演示如何處理不太常見的情況:類繼承自兩個或多個介面,且每個介面都具有相同名稱的事件。 在這種情況下,你必須為至少其中乙個事件提供顯式介面實現。 為事件編寫顯式介面實現時,還必須編寫 add 和 remove 事件訪問器。 通常這些訪問器由編譯器提供,但在這種情況下編譯器不提供它們。

通過提供自己的訪問器,可以指定兩個事件是由類中的同乙個事件表示,還是由不同事件表示。 例如,如果根據介面規範應在不同時間引發事件,可以在類中將每個事件與單獨實現關聯。 在下面的示例中,訂閱伺服器確定它們通過將形狀引用轉換為 ishape 或 idrawingobject 接收哪個 ondraw 事件。

namespace wraptwointe***ceevents

public

inte***ce

ishape

// base class event publisher inherits two

// inte***ces, each with an ondraw event

public

class

shape

:idrawingobject

, ishape

}remove}}

#endregion

// explicit inte***ce implementation required.

// associate ishape's event with

// postdrawevent

event

eventhandler ishape.ondraw

}remove}}

// for the sake of simplicity this one method

// implements both inte***ces.

public

void

draw()

}public

class

subscriber1

void

d_ondraw

(object sender,

eventargs e)

}// references the shape object as an ishape

public

class

subscriber2

void

d_ondraw

(object sender,

eventargs e)

}public

class

program}}

/* output:

sub1 receives the idrawingobject event.

drawing a shape.

sub2 receives the ishape event.

*/

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

可以在介面中宣告事件,然後在類中實現該事件的引用。在為方法訂閱事件時,可以訂閱介面宣告的事件,也可以訂閱類中的事件。class inte ceevent static void handlershapechanged object sender,customeventargs e e.area pu...

實現介面事件

如何 實現介面事件 c 程式設計指南 介面 可宣告事件 下面的示例演示如何在類中實現介面事件。介面事件的實現規則與任何介面方法或屬性的實現規則基本相同。下面的示例演示如何處理以下的不常見情況 您的類是從兩個以上的介面繼承的,每個介面都含有同名事件 在這種情況下,您至少要為其中乙個事件提供顯式介面實現...

C 介面事件的實現解析

c 介面事件的實現是如何的呢?下面的c 介面事件示例演示如何在類中實現介面事件。實現c 介面事件的規則與實現任何介面方法或屬性的規則基本相同。c 介面事件例項 在類中實現介面事件,在類中宣告事件,然後在適當的區域呼叫該事件。public inte ceidrawingobject public cl...