【文件属性】:
文件名称:理解委托-python3+opencv3识别图片中的物体并截取的方法
文件大小:10.59MB
文件格式:PDF
更新时间:2021-07-10 13:22:14
.net之美 关键技术解析
3.1 理解委托
3.1.1 将方法作为方法的参数
先不管这个标题如何的绕口,也不管委托究竟是个什么东西,先来看下面这两个最简单
的方法,它们不过是在屏幕上输出一句问候的话语:
public void GreetPeople(string name) {
// 做某些额外的事情,比如初始化之类,此处略
EnglishGreeting(name);
}
public void EnglishGreeting(string name) {
Console.WriteLine("Morning, " + name);
}
暂且不管这两个方法有没有实际意义。GreetPeople用于向某人问好,当传递代表某人
姓名的name参数,比如"Jimmy",进去的时候,在这个方法中,将会调用EnglishGreeting方
法,再次传递name参数,EnglishGreeting则用于向屏幕输出"Morning,Jimmy"。
现在假设这个程序需要进行全球化,比如有中国人不明白"Morning"是什么意思,怎么
办呢?好吧,那就再加个中文版的问候方法:
public void ChineseGreeting(string name){
Console.WriteLine("早上好, " + name);
}
这时候,GreetPeople也需要改一改,不然如何判断到底用哪个版本的Greeting问候方
法合适呢?在进行这个之前,最好再定义一个枚举作为判断的依据:
public enum Language{
English, Chinese
}
public void GreetPeople(string name, Language lang){
//做某些额外的事情,比如初始化之类,此处略
swith(lang){
case Language.English:
EnglishGreeting(name);
break;
case Language.Chinese:
ChineseGreeting(name);
break;
}