Csharp/CSharp Tutorial/delegate/Delegate Array — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 15:19, 26 мая 2010

Delegate array

<source lang="csharp">using System; public delegate double ComputeDelegate( double x,double y ); public class MyClass {

   public MyClass( ) {
   }
   public double Add( double x, double y ) {
       double result = x+y;
       Console.WriteLine( "InstanceResults: {0}", result );
       return result;
   }
   public static double Subtract( double x,double y ) {
       double result = x - y;
       Console.WriteLine( "StaticResult: {0}", result );
       return result;
   }
   private double factor;

} public class MainClass {

   static void Main() {
       MyClass proc1 = new MyClass( );
       MyClass proc2 = new MyClass( );
       ComputeDelegate[] delegates = new ComputeDelegate[] {
           new ComputeDelegate( proc1.Add ),
           new ComputeDelegate( proc2.Add ),
           new ComputeDelegate( MyClass.Subtract )
       };
       ComputeDelegate chained = (ComputeDelegate) Delegate.rubine( delegates );
       double combined = chained( 4, 5 );
       
       Console.WriteLine( "Output: {0}", combined );
   }

}</source>

InstanceResults: 9
InstanceResults: 9
StaticResult: -1
Output: -1