淺談.NET中的委托技朮
来源:互联网 发布:淘宝退货率在哪看 编辑:程序博客网 时间:2024/06/05 03:39
委拖是.NET 引入的一種重要技朮﹐可以實現對象的動態綁定。是面向對象和類型安全。主要用于.NET Framework的事件處理和回調函數。
委拖是一種組合方法﹐簡單的理解:兩個對象參與處理一個請求。接受請求的對象將操作委拖給代理者﹐并將自身傳給代理者﹐讓代理者可以引用接受請求的對象。從某種程度上來說﹐她相當于C++的函數指針﹐或者說接口﹐但比接口好一點的是她可以是靜態的。
使用委拖﹐一般的步驟是﹕聲明委托﹐實例委托﹐調用委托﹗
一個類中的任何方法﹐只要其簽名符合聲明的委托的簽名﹐那么該方法都可以賦給該委托的。
根據GoF設計模式﹐委托結構如下圖﹕(申明﹕該圖并非UML)
據該圖﹐代碼就可以很容易的寫成。而且Window類根本不需要實現Area()方法。他可以代理Rectangle的Area()方法。如下﹕
using System;
namespace DelegateTest
{
/**//// <summary>
/// Class1 的摘要描述。
/// </summary>
class Class1
{
/**//// <summary>
/// 應用程式的主進入點。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此加入啟動應用程式的程式碼
//
Window w = new Window ();
Rectangle r = new Rectangle ();
w.myDelArea = new DelArea(r.Area);
w.myDelArea();
}
}
public delegate float DelArea();
public class Window
{
public DelArea myDelArea;
}
public class Rectangle
{
private float Width = 8;
private float Height = 9;
public float Area()
{
float returnVaue = Width * Height;
Console.WriteLine("Width * Height = {0}",returnVaue );
return returnVaue;
}
}
}
當然﹐在這里﹐可能不用委托更好理解﹐我將其用在這里﹐是想起一個拋磚引玉的作用。歡迎讀者朋友們丟玉﹗呵呵……
- 淺談.NET中的委托技朮
- .NET中的委托技术
- .net 中的委托机制
- net中的委托
- 浅谈.NET中的委托
- .net中的委托
- VB.NET中的委托
- Asp.net中的委托
- .NET 中的委托
- .NET 中的委托
- 浅谈.NET中的委托
- .NET中的委托
- .Net中的事件与委托
- Net中的事件与委托
- net中的事件与委托
- .Net中的事件与委托
- .net中的委托和事件
- .NET 中的事件与委托
- 动态分配二维数组
- Gray and Dithered Bitmap Functions
- Swing应用程序框架(Swing Application Framework)API绪论(JSR-296)之一(翻译)
- WebLogic10 Domain在windows XP环境下注册自动启动服务
- Abstract Factory 与builder模式的区别
- 淺談.NET中的委托技朮
- linux 硬盘分区情况
- C++ 和 Delphi 的函数覆盖(Override)与重载(overload)
- 剖析MFC六大关键技术 (zz)
- 初探Lucene
- LUCENE读书笔记20070703
- HTTP协议下用Web Service上传大文件的解决方案
- HttpModule学习笔记
- 深入浅出DirectShow Filter(一)