深入委托與多播委托的詳解
更新時間:2013年06月09日 10:29:05 作者:
本篇文章是對委托與多播委托進行了詳細的分析介紹,需要的朋友參考下
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class 簡單的委托實例
{
public static double Area(double Val)
{
return Val * 2;
}
public static double Scare(double Val)
{
return Val * Val;
}
}
class Test
{
public delegate double delegateTest(double dd);
static void Main()
{
//實例化了個委托數組,(一旦定義了委托類,就可以實例化它的實例)
delegateTest[] Operations =
{
//說明了委托的一種方式,把方法組合到數組
new delegateTest(簡單的委托實例.Area),
new delegateTest(簡單的委托實例.Scare)
};
for (int i = 0; i < Operations.Length; i++)
{
Console.WriteLine("Using Operations[{0}]", i);
Test MyTest = new Test();
//把委托傳遞給ProcessDelagate()這個方法,Operations[0]可以理解成delegateTest Operations =new delegateTest(簡單的委托實例.Area);調用ProcessDelagate這個方法的時候Operations代理的方法是簡單的委托實例.Area
MyTest.ProcessDelagate(Operations[i], 12.0);
MyTest.ProcessDelagate(Operations[i], 2.0);
Console.WriteLine();
}
}
//把委托作為一個參數傳遞到ProcessDelagate()第一個參數中
void ProcessDelagate(delegateTest Action, double d)
{
double Result = Action(d);
Console.WriteLine("提供的值是{0},結果是{1}", d, Result);
}
}
}
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
//如果要多次調用這個方法,那么就要多次調用這個委托,委托包含多個方法,這個種委托就是多播委托!
class 多播委托
{
//用的是void沒有返回值
public delegate void DelageteTest(double val);
static void Main()
{
//多播委托中添加2個方法
DelageteTest MyTest = new DelageteTest(Test.Area);
MyTest += new DelageteTest(Test.Scare);
//下面的代碼跟上面的3行代碼是等價的
//DelageteTest MyTest;
//DelageteTest Test1 = new DelageteTest(Test.Area);
//DelageteTest Test2 = new DelageteTest(Test.Scare);
//MyTest = Test1 + Test2;
多播委托 多 = new 多播委托();
多.OPreation(MyTest, 2.0);
多.OPreation(MyTest, 12.0);
}
void OPreation(DelageteTest Action, double d)
{
Action(d);
}
}
class Test
{
public static void Area(double Val)
{
Console.WriteLine(Val * 2);
}
public static void Scare(double Val)
{
Console.WriteLine(Val * Val);
}
}
}
相關文章
C# httpwebrequest訪問HTTPS錯誤處理方法
下面小編就為大家?guī)硪黄狢# httpwebrequest訪問HTTPS錯誤處理方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01