委托 事件 lambda表达式

本文通过实例介绍了C#中的委托和事件的概念及其使用场景,探讨了如何利用委托简化代码并提高灵活性,同时讨论了事件如何帮助实现解耦。

委托就是以方法为参数的类型。不懂,

看代码

正常情况下是这样的

有个方法是

public void Love(string country)

{

  messagebox.show("I Love"+" "+country);

}

你要调用这个方法是不是这样的啊

string m="中国!";

Love(m);

委托就是在这个例子中,Love若是为委托的话,那么m就是一个方法。

但是这样的效果肯定不好,I Love 中国 应该为  我爱中国 

加个判断

    if(country="中国")

    messagebox.show("我爱"+" "+country);

如果是其他的国家的呢,,

写个方法去判断国家名字 

public void Country(string countryName)

{

  if(countryName="中国")

    China(countryName);

}

 

 如果是中国的话,则调用这个方法

public void China(string country)

{

  messagebox.show("我爱"+" "+country);

}

这样写很麻烦 要是把国家和语言都传递给一个方法

public void Love(string lan,string country)

{

  messagebox.show(lan+" "+country);

}

调用的时候就可以这样写了,Love("我爱","中国");但是程序员不是神,他不可能知道每个国家的语言吧

public void ChinaLove(string country)

{

  messagebox.show("我爱"+" "+country);

}

但是前提是我得判断是哪一国家的啊,,但是全球有那么多的国家,如果我把国家的名字作为参数放在 love方法里,然后根据不同的国家,执行对应的代码,那该多好啊

 有一个神奇的函数 HHH(countryName ,Method) 第一个是国家的名字,第二个是执行的方法 比如我如果选的是中国=》ChinaLove("中国"); 

 

委托就是这样的啊

delegate void Language(string Country); 加了个delegate 其他的和方法没有什么区别啊 这是定义,但是我怎用呢,是不是想到开头的m的定义是 string m="";

所以这里的委托用的时候应该这样写

Language delLang ;//这是先定义好,还没有赋值呢

那段神奇的结构就是这样的了

HHH(china,deLang)

但是我怎么调用啊

HHH(china,deLang)

{

  deLang(china)

}

这样都行啊,,我记得字符出有拼接的难道他也有,,好像真有

我难道可以这样

Language Chi;

Language Eng+=Chi;都可以

还挺方便的,比如一个混血儿,爱两个国家 就可以

Language Chi;

Language f+=Chi

HHH(china,Eng);

但是有个国家变得很差劲,不爱了

Eng-=f;

我有很多地方用到这类性的,怎么办,,总不能写同一个类里面

委托写在一个类里面 比如说叫Test类

调用的时候得这样吧

Test T=new Test();

T.HHH(参数)

要是那个国家变好了 Language f+=Chi;

我得这样写

HHH(“中国”,f);会有两个弹窗

其实是不是f 相当于是传递了两次, 优化吧

HHH(string country)

{

if(deLang!=null)

   deLang(country)

}

前提是这个委托的访问修饰符必须是public ,但是都是public很容易错啊,必须改为private ,改为私有的,调不了啊。如果能像string那样进行封装成属性,,该多好吧

那就用事件吧,,我只知道老师教的click事件,其他的不懂,但是只知道有event,难道是用event,,

 public event Language deLang()

但是事件 只能出现在 += 或 -= 的左边

从上面好像是 HHH函数 听强大的,他能你传递的参数来做相应的事情,,是不是相当于监听啊,,我一直在监听你要传给我的参数,然后执行方法,

我什么时候要用委托啊,还有事件啊,,不想用if else 的时候,,用if else 粗心的人比较容易出bug,我不太喜欢,,,

但是这样调用太麻烦了,又懒了,那就用lambda ,这啥玩意,到msdn上看看

delegate void Language(string Country); 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/http-www/p/3448714.html

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值