从句法上看是构造函数,但其实更象是转换函数,即把所有没有形参而且返回整数的函数转化成一个统一的格式,然后由T统一调用这些函数,下列例子是根据你的例子改编的,你看一下:using System;
class TempClass
{
public TempClass(int i)
{
X=i;
}
public int GetX()
{
Console.WriteLine(X.ToString());
return X;
}
private int X;
} class TempClass2
{
public TempClass2(int i)
{
Y=i;
}
public int GetY()
{
Console.WriteLine(Y.ToString());
return Y;
}
private int Y;
} delegate int Mydelegate();
class MainClass
{
static public int Main()
{
Mydelegate T; TempClass Tempobj = new TempClass(11);
T = new Mydelegate(Tempobj.GetX); TempClass Tempobj2 = new TempClass(22);
T += new Mydelegate(Tempobj2.GetX); TempClass2 Tempobj3 = new TempClass2(33);
T += new Mydelegate(Tempobj3.GetY); Console.WriteLine("Result Is "+ T());
return 0;
}
}
class TempClass
{
public TempClass(int i)
{
X=i;
}
public int GetX()
{
Console.WriteLine(X.ToString());
return X;
}
private int X;
} class TempClass2
{
public TempClass2(int i)
{
Y=i;
}
public int GetY()
{
Console.WriteLine(Y.ToString());
return Y;
}
private int Y;
} delegate int Mydelegate();
class MainClass
{
static public int Main()
{
Mydelegate T; TempClass Tempobj = new TempClass(11);
T = new Mydelegate(Tempobj.GetX); TempClass Tempobj2 = new TempClass(22);
T += new Mydelegate(Tempobj2.GetX); TempClass2 Tempobj3 = new TempClass2(33);
T += new Mydelegate(Tempobj3.GetY); Console.WriteLine("Result Is "+ T());
return 0;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货