C#语法

qq_30412191 2020-07-23 08:11:43


为什么C#语法可以这样写,为什么最后一个会把一个类当做参数传递过去?
...全文
1728 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2020-07-24
  • 打赏
  • 举报
回复
重点就是传递了一个委托。 action,function,predicate都是委托的封装
threenewbee 2020-07-24
  • 打赏
  • 举报
回复
Action<IApplicationBuilder>
代表
void 函数名(IApplicationBuilder ab)
{

}
这样一个函数,只要符合这个函数的参数/返回值,就可以放进去。
秋的红果实 2020-07-24
  • 打赏
  • 举报
回复
再简单说下Action,他是.NET内置委托类型 List<Action<IApplicationBuilder>> _configures = new List<Action<IApplicationBuilder>>();等效于 public delegate theDelegate(IApplicationBuilder p1); List<theDelegate> _configures = new List<theDelegate>();
wanghui0380 2020-07-24
  • 打赏
  • 举报
回复
当然Builder的麻烦事情是“一次性生成”,也就是他是一次性的,生成了就改不了了。 所以如果是你要动态改,这种事情就要另外做了。比如:你要在运行的时候另外加一个IApplicationBuilder,对不起已经Builder过了,加不进去了
wanghui0380 2020-07-24
  • 打赏
  • 举报
回复
额,既然看到了Builder,你就应该知道这又是“设计模式” builder其实就是让代码生成代码,这里得目的是统一初始化,统一配置。 比如上次有人问“我有一个配置,根据A调用A方法,设置成B调用B方法,现在我每次都读取判定,我觉着不OK,我想在启动时只读取一次,只判定一次” 我们的回答就是,OK。用netcore的这种Builer,启动时一次配置好,让builder给你用代码生成你想要的代码
秋的红果实 2020-07-24
  • 打赏
  • 举报
回复
List<Action<IApplicationBuilder>> 红色的字体是一个类型,而这个类型又由另外一种类型构成
qq_30412191 2020-07-24
  • 打赏
  • 举报
回复
昨天想了好久,明白了,太绕了
  • 打赏
  • 举报
回复
cofigure 是一个委托,也就是一个可执行方法。可执行方法是对象,可以把一个委托(不管是Action<> 还是 Func<>)作为数据传来传去的。甚至现在流行的任务 Task 也是一个可执行的东西,而且还可以控制其并发性,Task 比 Action 和 Func 更酷。

而 IApplicationBuilder 是一个接口,builder 变量引用的是具有这个接口的一个对象实例。Action<IApplicationBuilder> 本来就声明了此委托委托的对象的参数有一个可以接收 builder 引用对象的参数了。这整个逻辑都非常清晰严谨,可操作。
qq_30412191 2020-07-23
  • 打赏
  • 举报
回复
,我理解不了这个List<Action<IApplicationBuilder>> _configures = new List<Action<IApplicationBuilder>>();,有大神解答一下吗?

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧