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

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

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

Delegate array

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 );
    }
}
InstanceResults: 9
InstanceResults: 9
StaticResult: -1
Output: -1