c#中委托的使用
时间:2010-12-10 来源:cosa7
namespace _1210
{
class Program
{
static void Main(string[] args)
{
//实例化Pepole类
Pepole p = new Pepole();
//传递方法作为参数,实现委托
p.C("A", p.A);
p.C("B", p.B);
Console.ReadLine();
}
}
//声明一个委托Delegate
public delegate void Delegate(string str);
public class Pepole
{
public void A(string a)
{
Console.WriteLine("我是方法:"+a);
}
public void B(string b)
{
Console.WriteLine("我是方法:" + b);
}
//将委托类型的方法作为一个参数变量来传递
public void C(string strs, Delegate D)
{
D(strs);//传参strs
}
}
//委托就是把方法作为一个参数当做变量来使用,当方法有不同的返回结果时,就得到不同的参数,就像是使用枚举得到不同的参数一样
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _1210
{
class NotIsDelegate
{
static void Mian(string[] args)
{
People p = new People();
p.C("A", People.enums.pramA);
p.C("B", People.enums.pramB);
Console.ReadLine();
}
}
public class People
{
public void A(string a)
{
Console.WriteLine("我是方法:"+a);
}
public void B(string b)
{
Console.WriteLine("我是方法:"+b);
}
//定义一个枚举
public enum enums
{
pramA,
pramB
}
//根据不同的枚举参数来调用不同的方法
public void C(string str, enums enums)
{
switch (enums)
{
case enums.pramA:
A(str);
break;
case enums.pramB:
B(str);
break;
default:
break;
}
}
}
}