C 介面事件的實現解析

2021-09-30 04:48:41 字數 2526 閱讀 3559

c#介面事件的實現是如何的呢?下面的c#介面事件示例演示如何在類中實現介面事件。實現c#介面事件的規則與實現任何介面方法或屬性的規則基本相同。

c#介面事件例項:

在類中實現介面事件,在類中宣告事件,然後在適當的區域呼叫該事件。

public

inte***ceidrawingobject  

public

classmyeventargs : eventargs   

public

classshape : idrawingobject  

protected

virtual

voidonshapechanged(myeventargs e)  

}  }

c#介面事件示例

下面的示例演示如何處理以下的不常見情況:您的類是從兩個以上的介面繼承的,每個介面都含有同名事件)。在這種情況下,您至少要為其中乙個事件提供顯式介面實現。為事件編寫顯式介面實現時,必須編寫 add 和 remove 事件訪問器。這兩個事件訪問器通常由編譯器提供,但在這種情況下編譯器不能提供。

您可以提供自己的訪問器,以便指定這兩個事件是由您的類中的同一事件表示,還是由不同事件表示。例如,根據介面規範,如果事件應在不同時間引發,則可以將每個事件與類中的乙個單獨實現關聯。在下面的示例中,訂戶將形狀引用強制轉換為 ishape 或 idrawingobject,從而確定自己將會接收哪個 ondraw 事件。

c#介面事件**:

namespacewraptwointe***ceevents  

public

inte***ceishape  

// base class event publisher inherits two

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

public

classshape : idrawingobject, ishape  

}  remove  

}  }  // explicit inte***ce implementation required.

// associate ishape's event with

// postdrawevent

eventeventhandler ishape.ondraw  

}  remove  

}  }  // for the sake of simplicity this one method

// implements both inte***ces. 

public

voiddraw()  

console.writeline("drawing a shape."

);  

// raiseishape's event after the object is drawn.

handler = postdrawevent;  

if(handler !=null)  

}  }public

classsubscriber1  

voidd_ondraw(objectsender, eventargs e)  

}  // references the shape object as an ishape

public

classsubscriber2  

voidd_ondraw(objectsender, eventargs e)  

}  public

classprogram  

}  }

/* c#介面事件示例output: 

sub1 receives the idrawingobject event.

drawing a shape.

sub2 receives the ishape event.  */

c#介面事件的實現以及使用的一些內容就向你介紹到這裡,希望對你了解和學習c#介面事件有所幫助。

C 如何實現介面事件

在類中宣告事件,然後在相應區域中呼叫它。namespace implementinte ceevents public class myeventargs eventargs public class shape idrawingobject protected virtual void onsha...

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

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

實現介面事件

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