متود Delegate.GetInvocationList در #C
سلام بر تمامی برنامه نویسان سی شارپ 😉 در این مطلب ، متود Delegate.GetInvocationList در سی شارپ #C رو براتون آماده کردم. انشاالله که این کد براتون مفید باشه.
خروجی پروژه به این صورت می باشد:
InstanceResults: 9
9
InstanceResults: 9
9
StaticResult: -1
-1
9
InstanceResults: 9
9
StaticResult: -1
-1
متود Delegate.GetInvocationList :
using System;
public delegate double Compute( double x, double y );
public class Processor
{
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;
}
}
public class MainClass
{
static void Main() {
Processor proc1 = new Processor( );
Processor proc2 = new Processor( );
Compute[] delegates = new Compute[] {
new Compute( proc1.Add ),
new Compute( proc2.Add ),
new Compute( Processor.Subtract )
};
Compute chained = (Compute) Delegate.Combine( delegates );
public delegate double Compute( double x, double y );
public class Processor
{
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;
}
}
public class MainClass
{
static void Main() {
Processor proc1 = new Processor( );
Processor proc2 = new Processor( );
Compute[] delegates = new Compute[] {
new Compute( proc1.Add ),
new Compute( proc2.Add ),
new Compute( Processor.Subtract )
};
Compute chained = (Compute) Delegate.Combine( delegates );