1 namespace Vczx.ProCSharp.Exc
2 {
3 delegate double MathsOp( double x );
4 //class defination here
5 }
1 class MathsOperations
2{
3 public static double MultiplyBy2( double value )
4 {
5 return value * 2;
6 }
7}
1namespace Vczx.ProCSharp.Exc
2{
3 delegate double MathsOp( double x );//声明委托,返回值double型,形参double型
4 class Start
5 {
6 public class MyDelegate //一个类,其中有 可以用委托MathsOp调用的方法MultiplyBy2
7 {
8 public static double MultiplyBy2( double x )//方法MultiplyBy2
9 {
10 return x * 2;
11 }
12 }
13 [STAThread]
14 static void Main(string[] args)
15 {
16 MathsOp operation = new MathsOp( MyDelegate.MultiplyBy2 );//实例化委托,并赋予委托一个方法
17 double x = 1.23;
18 double result = operation( x ); //调用委托operation 其中有方法MultiplyBy2 将X值传给方法操作
19 Console.WriteLine( "{0} multiply by 2 is {1}", x, result );
20 Console.Read();
21 }
22 }
23}
1namespace Vczx.ProCSharp.Exc
2{
3 public class MyDelegate //一个两个不同方法的类,两个方法的返回值和形参类型相同
4 {
5 public static void MultiplyBy2( double value )
6 {
7 double result = value * 2;
8 Console.WriteLine( "Multiplying by 2: {0} gives {1}", value, result );
9 }
10
11 public static void Squre( double value )
12 {
13 double result = value * value;
14 Console.WriteLine( "Squaring: {0} gives {1}", value, result );
15 }
16 }
17
18 delegate void MathsOp( double x );//声明委托
19
20 class Start
21 {
22 [STAThread]
23 static void Main(string[] args)
24 {
25 MathsOp operation = new MathsOp( MyDelegate.MultiplyBy2 );//实例化委托,并初始化委托方法
26 operation = new MathsOp( MyDelegate.Squre );//添加一个委托方法到委托
27 double x = 1.23;
28 operation( x );//调用委托
29
30 operation -= new MathsOp( MyDelegate.MultiplyBy2 );//删除一个委托
31 operation( x );//调用委托
32
33 Console.Read();
34 }
35 }
36}