如何判断是否有委托对象啊
实验要求1. 自己选择一个应用实例,可以是教材中的示例或已完成的实验设计;为所选择的示例声明一种自定义的委托类型,使用该委托类型,并在程序中调用该委托类型。
2. 要求实现的程序必须使用运算符+,—操作委托对象,来验证委托类型的+,—操作的基本特性。
3. 必须使用GetInvocationList方法来获取委托对象中的代表列表中的信息
a) 做出是否有委托对象的断定。
b) 利用GetInvocationList方法的返回值做委托对象关联处理函数的操作(选做)。
下面是我写的,大家帮忙看看吧。。。
using System;
namespace MyDeleg
{
delegate int MyDelegate(int Num1, int Num2);
class MyClass
{
public static int Add(int Num1, int Num2)
{
int Result;
Result = Num1 + Num2;
Console.WriteLine("{0}+{1}={2}", Num1, Num2, Result);
return Result;
}
public static int Sub(int Num1, int Num2)
{
int Result;
Result = Num1 - Num2;
Console.WriteLine("{0}-{1}={2}", Num1, Num2, Result);
return Result;
}
public static void Main()
{
int Num1; int Num2;
Num1 = 777;
Num2 = 222;
MyDelegate a, b, c, d;
a = new MyDelegate(Add);
b = new MyDelegate(Sub);
Console.WriteLine("委托的简单调用");
a(Num1, Num2);
b(Num1, Num2);
Console.WriteLine("委托对象的简单运算");
c = a + b;
d = a - b;
Console.WriteLine("委托对象的< + >运算");
c(Num1, Num2);
Console.WriteLine("委托对象的< - >运算");
d(Num1, Num2);
Delegate[] delegateArray = c.GetInvocationList();
Console.WriteLine("获取< + >运算中委托对象中的代表列表:");
foreach (Delegate delgt in delegateArray)
{
Console.WriteLine(delgt.Method.GetBaseDefinition());
}
Console.ReadLine();
}
}
}