日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#delegate范例介紹

C#語言有很多值得學習的地方,這里我們主要介紹C# delegate,包括介紹Windows Message數(shù)量的變量成本等方面。

事件處理是組件設(shè)計中相當重要的一環(huán),在C#中事件與C# delegate是緊密相關(guān)的,首先看一個簡單的事件范例。

 
 
 
  1. using System;
  2. namespace EventDemo
  3. {
  4. public delegate void ProcessHandler(object sender);
  5. public class Class1
  6. {
  7. private event ProcessHandler _processHandler = null;
  8. public event ProcessHandler ProcessStart
  9. {
  10. add
  11. {
  12. _processHandler += value;
  13. }
  14. remove
  15. {
  16. _processHandler -= value;
  17. }
  18. }
  19. public void Process()
  20. {
  21. _processHandler(this);
  22. for(int i = 0; i < 10; i++)
  23. ii = i+1;
  24. }
  25. public Class1()
  26. {}
  27. }
  28. }

C# delegate扮演著函數(shù)指針的角色,用戶可以將某個函數(shù)加入一個delegate之中,而一個delegate允許用戶加入一個以上的函數(shù),當調(diào)用此delegate時就等同于調(diào)用其內(nèi)所含的所有函數(shù)。不過設(shè)計手法潛藏著一個問題,就是當事件數(shù)眾多時,對象就必須付出相應(yīng)數(shù)量的C# delegate變量。

 
 
 
  1. private event ProcessHandler _processStart = null;
  2. private event ProcessHandler _processEnd = null;
  3. private event ProcessHandler _processStep = null; 

不管用戶是否用到了這些事件,當對象被創(chuàng)建起來時就得付出這些成本,這在窗口應(yīng)用程序上更顯得可怕,因為Windows Message(窗口消息)的數(shù)量以千為單位,假如一個簡單的窗口程序就必須付出相對于Windows Message數(shù)量的變量成本,這樣一來對象豈不成了龐然大物了。


文章題目:C#delegate范例介紹
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/dhosscj.html