委托demo
2024-09-10 15:40:57
delegate bool Filter(string s);
class test
{
static void Main()
{
Filter f=new Filter(A);
Display(new string[]{"ant","line","yok"},f);
}
static bool A(string s)
{
return "N".CompareTo(s)>;
}
static void Display(string[] Names,Filter f)
{
int count=;
foreach(string str in Names)
if(f(str))
console.writeline("Item {0} is {1}",count++,str);
}
}
2.组播委托
delegate void methodinvoker();
class test
{
static void Main()
{
new test();
}
test()
{
methodinvoker m=null;
m+=new methodinvoker(Foo);
m+=new methodinvoker(Goo);
m();
}
void Foo()
{
console.writeline("Foo");
}
void Goo()
{
console.writeline("Goo");
}
}
委托能处理的事情接口也能同样处理
interface IFilter
{
bool Filter(string s);
}
class test
{
class A:IFilter
{
public bool Filter(string s)
{
return "N".CompareTO(s)>;
}
static void Main()
{
A a=new A();
Display(new string[]{"ant","lion","yok"},IFilter f);
}
static void Display(string[] Names,IFilter f)
{
int count=;
foreach(string s in Names)
if(f(s))
console.writeline("Item {0} is {1}",count++,s);
}
}
}
注:委托处理虽然根漂亮,但委托最好用在事件上。
最新文章
- 使用FastJSON,将对象或数组和JSON串互转
- Linux下查看用户列表
- Dom4J对XML的创建、修改、删除等操作
- 一张图搞懂 Javascript 中的原型链、prototype、__proto__的关系 转载加自己的总结
- BattleInfo
- 多线程编程学习笔记——async和await(一)
- Python输出和输入
- 第四周作业&;&;结对编程
- vue中子组件通过$parent操作父组件的参数或者方法
- mongodb 数组查询
- 20165336 2017-2018-2《Java程序设计》课程总结
- exec可以用来执行语句的
- 【BZOJ4545】DQS的trie 后缀自动机+LCT
- Document对象关于窗口的一些属性
- Linux Min装机--配置JDK替换OpenJDK
- swagger多个分组代码展示
- OD 实验(一) - 修改程序标题
- ns2.35-classifier.cc
- Excle中range的一些用法
- Pycharm快速复制当前行到下一行Ctrl+D
热门文章
- C语言中‘\n'为什么能表示CRLF两个字节
- entity framework extended library , bulk execute,deleting and updating ,opensource
- 简单3d RPG游戏 之 001 生命条(一)
- ExtJS 获取浏览器宽度
- Linux按照时间查找文件
- 在Unity中高效工作(下)
- Android OTG支持USB读卡器
- CreateObject(";Wscript.Shell";)用法
- 【HDOJ】1720 A+B coming
- IPv6 tutorial 1 Get started now