昨晚看的一个别人的委托例子 class Test { static void Main(string[] args) { t n = new t(); n.我店里是卖商品的(n.a);//客人来买商品a
} } delegate void 我是帮老板调用商品的(); class t { public void a() { Console.WriteLine("我是商品a"); } public void b() { Console.WriteLine("我是商品b"); } public void 我店里是卖商品的(我是帮老板调用商品的 m) { m(); } }如果需要实现买商品的数量就可以定义一个数量参数 class Test { static void Main(string[] args) { t n = new t(); n.我店里是卖商品的(5,n.a);//客人来买商品a 5个
} } delegate void 我是帮老板调用商品的(int num); class t { public void a(int num) { Console.WriteLine("我是商品a,购买数量" + num); } public void b(int num) { Console.WriteLine("我是商品b,购买数量" + num); } public void 我店里是卖商品的(int num, 我是帮老板调用商品的 m) { m(num);//匹配签名 } }
Action 和 Func是VS2008以上才支持的新方法,他们是范型委托,系统帮你定义好的,直接使用实例化委托实例即可,无需委托声明。
class Test
{
static void Main(string[] args)
{
t n = new t();
n.我店里是卖商品的(n.a);//客人来买商品a
}
}
delegate void 我是帮老板调用商品的();
class t
{
public void a()
{
Console.WriteLine("我是商品a");
}
public void b()
{
Console.WriteLine("我是商品b");
}
public void 我店里是卖商品的(我是帮老板调用商品的 m)
{
m();
}
}如果需要实现买商品的数量就可以定义一个数量参数
class Test
{
static void Main(string[] args)
{
t n = new t();
n.我店里是卖商品的(5,n.a);//客人来买商品a 5个
}
}
delegate void 我是帮老板调用商品的(int num);
class t
{
public void a(int num)
{
Console.WriteLine("我是商品a,购买数量" + num);
}
public void b(int num)
{
Console.WriteLine("我是商品b,购买数量" + num);
}
public void 我店里是卖商品的(int num, 我是帮老板调用商品的 m)
{
m(num);//匹配签名 }
}
引用, 即将实际上的函数赋给这个引用,或将这个引用指向你编写的函数我(一个类的创建者) 在类的某个地方调用这个引用,如果这个引用不为null,那么将调用你实例化这个引用时指定的函数, 这就是C#事件的实现.
具体Action 和func怎么用啊!有点不理解哦!