自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# delegate范例介紹

開發(fā) 后端
這里介紹C# delegate扮演著函數(shù)指針的角色,用戶可以將某個(gè)函數(shù)加入一個(gè)delegate之中,而一個(gè)delegate允許用戶加入一個(gè)以上的函數(shù),當(dāng)調(diào)用此delegate時(shí)就等同于調(diào)用其內(nèi)所含的所有函數(shù)。

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

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

  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. }  

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

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

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

【編輯推薦】

  1. C#與VB7比較詳解
  2. C#連接Access淺析
  3. C#創(chuàng)建XML Web services學(xué)習(xí)經(jīng)驗(yàn)
  4. C# Windows應(yīng)用程序概述
  5. C# SmartPhone程序?qū)W習(xí)筆記
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-08-27 16:11:03

C# delegateC# event

2009-08-19 14:29:33

C#代理

2009-08-12 18:35:36

C# ArrayLis

2009-08-17 16:47:51

C# Anonymou

2009-09-02 17:20:50

C# Parsing

2009-08-10 16:30:56

C# BitmapDa

2009-08-12 09:41:28

C# Director

2009-09-03 15:57:11

C# SystemMe

2009-08-04 08:48:44

C#內(nèi)置特性

2009-07-31 14:15:38

C# 構(gòu)造函數(shù)

2009-08-12 15:34:40

C# DBNull

2009-08-12 15:43:02

操作C# Datase

2009-08-18 16:45:40

C# Raw Sock

2021-05-13 07:20:44

C# ActionDelegate

2009-08-18 17:17:05

C#局部類型

2009-08-26 11:30:16

C# Arraylis

2009-09-07 15:40:06

2009-08-21 15:16:23

C#使用指針

2009-08-26 17:31:59

C# const常量

2009-08-24 18:21:23

C# ListView
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)