委派的多点传输

简介: 可以使用一个委派调用多个方法,委派和方法都有一个限制:委派和方法都必须返回void。     下面的例子定义了一个叫DelegateCalculation的返回值为void的派生类:     public delegate void DelegateCalculation(   ...
        可以使用一个委派调用多个方法,委派和方法都有一个限制:委派和方法都必须返回void。

    下面的例子定义了一个叫DelegateCalculation的返回值为void的派生类:

    public delegate void DelegateCalculation(
        double acceleration, double time
    );

 
 
1 /*
2 Example12_2.cs illustrates the use of a multicast delegate
3   */
4
5 using System;
6
7
8 // declare the DelegateCalculation delegate class
9 public delegate void DelegateCalculation(
10 double acceleration, double time
11 );
12
13
14 // declare the MotionCalculations class
15 public class MotionCalculations
16 {
17
18 // FinalSpeed() calculates the final speed
19 public static void FinalSpeed(
20 double acceleration, double time
21 )
22 {
23 double finalSpeed = acceleration * time;
24 Console.WriteLine( " finalSpeed = " + finalSpeed +
25 " meters per second " );
26 }
27
28 // Distance() calculates the distance traveled
29 public static void Distance(
30 double acceleration, double time
31 )
32 {
33 double distance = acceleration * Math.Pow(time, 2 ) / 2 ;
34 Console.WriteLine( " distance = " + distance + " meters " );
35 }
36
37 }
38
39
40 class Example12_2
41 {
42
43 public static void Main()
44 {
45
46 // declare and initialize the acceleration and time
47 double acceleration = 10 ; // meters per second per second
48 double time = 5 ; // seconds
49 Console.WriteLine( " acceleration = " + acceleration +
50 " meters per second per second " );
51 Console.WriteLine( " time = " + time + " seconds " );
52
53 // create delegate object that call the
54 // MotionCalculations.FinalSpeed() and
55 // MotionCalculations.Distance() methods
56 DelegateCalculation myDelegateCalculation1 =
57 new DelegateCalculation(MotionCalculations.FinalSpeed);
58 DelegateCalculation myDelegateCalculation2 =
59 new DelegateCalculation(MotionCalculations.Distance);
60
61 // create a multicast delegate object from
62 // myDelegateCalculation1 and
63 // myDelegateCalculation2
64 DelegateCalculation myDelegateCalculations =
65 myDelegateCalculation1 + myDelegateCalculation2;
66
67 // calculate and display the final speed and distance
68 // using myDelegateCalculations
69 myDelegateCalculations(acceleration, time);
70
71 }
72
73 }

       接着,在MotionCalculations类中定义两个返回void的叫FinalSpeed和Distancede方法。

    

 
 
public class MotionCalculations
{

// FinalSpeed() calculates the final speed
public static void FinalSpeed(
double acceleration, double time
)
{
double finalSpeed = acceleration * time;
Console.WriteLine(
" finalSpeed = " + finalSpeed +
" meters per second " );
}

// Distance() calculates the distance traveled
public static void Distance(
double acceleration, double time
)
{
double distance = acceleration * Math.Pow(time, 2 ) / 2 ;
Console.WriteLine(
" distance = " + distance + " meters " );
}

}

接着,创建两个委派对象,并把MotionCalculations.FinalSpeed和MotionCalculations.Distance传递给它的构建函数

 

 
 
DelegateCalculation myDelegateCalculation1 =
new DelegateCalculation(MotionCalculations.FinalSpeed);
DelegateCalculation myDelegateCalculation2
=
new DelegateCalculation(MotionCalculations.Distance);

这两个委派可以使用重载的加运算符(+)来合在一起

   

 
 
myDelegateCalculations(acceleration, time);

全部代码为:

 

相关文章
|
6月前
|
域名解析 负载均衡 网络协议
【计算机网络】什么是区域传输?
【1月更文挑战第10天】【计算机网络】什么是区域传输?
【系统分析】数据通信——信道传输的方式
【系统分析】数据通信——信道传输的方式
361 0
|
5月前
|
网络协议 C语言 网络架构
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
274 7
|
6月前
|
监控 安全 BI
【亮剑】摄像头组播技术,一种一对多通信方式,通过特殊组播地址实现信息源向多个目的地同时发送数据
【4月更文挑战第30天】摄像头组播技术,一种一对多通信方式,通过特殊组播地址实现信息源向多个目的地同时发送数据,节省带宽,降低延迟。应用于安全监控、交通管理、商业分析、远程教育和智能家居等领域,提高效率,保障安全。技术关键包括组播地址管理、路由选择和成员管理,以及网络拥塞和错误控制。随着技术发展,其在数字化世界中的作用将日益显著。
128 1
|
6月前
|
算法
计算机网络:封装成帧 & 透明传输 & 差错检测
计算机网络:封装成帧 & 透明传输 & 差错检测
121 0
|
Web App开发 网络协议 安全
用于点对多点和多点对多点标签交换路径的多点 LDP 带内信令
本文档是 Internet 工程任务组 (IETF) 的产品。它代表了 IETF 社区的共识。它已接受公众审查,并已获互联网工程指导小组 (IESG) 批准出版。有关 Internet 标准的更多信息,请参见 RFC 5741 的第 2 节。
147 0
用于点对多点和多点对多点标签交换路径的多点 LDP 带内信令
|
缓存 数据安全/隐私保护 芯片
十九、信道划分和介质访问控制
十九、信道划分和介质访问控制
十九、信道划分和介质访问控制
十一、物理层传输介质和设备
十一、物理层传输介质和设备
十一、物理层传输介质和设备
|
缓存 算法 物联网
第三章:数据链路层(下)计算机网络 信道划分介质访问控制
第三章:数据链路层(下)计算机网络 信道划分介质访问控制
251 0
第三章:数据链路层(下)计算机网络 信道划分介质访问控制