c#中签名类似方法的执行选择
c#中的赋值语句是有返回值的,等价于将赋值操作完成后,再将赋值号(=)左边返回(这就是为什么我们可以写y=x=1)这样的语句来初始化一系列的变量。第二点要说的就是在c#中,某些labmda表达式可以简写。如(t1,t2) => { return something; }可以简写为(t1,t2) => something;以及(t1,t2) => { dosomething; } 可以简写为 (t1,t2) => dosomething。那么我们再来看上文的lambda表达式,它可能是两个表达式的简写:(1) i => { i = 1; } 这个时候很明显它是一个action(注1),如果你不采用简写的话那么上面的例子毫无疑问会执行第一个test函数(因为不满足第二个函数的参数类型)。 (2) i => { return i = 1; } 这个时候明显它是一个func,同时也是一个func。在这种不明确的情况下,c#是如何选择执行函数的呢
static void main(string[] args)
{
test(i => i = 1);
}static void test(action action)
{
action(1);
}static void test(func func)
{
func(1);
}
别被AI反噬:架构师视角下的程序员进阶之路
基于RAG架构的四标融合企业知识资产体系工程化建设:知识库、场景库、知识图谱与知识链接落地实践
一人公司用 WorkBuddy 充当"免费员工":从抖音脚本到知识库,我的三个月实战心得
代码助力学术研究:现代论文写作的技术革新与实践指南
每天1个skill系列6:Code SimplifierAI写的代码:谁来善后?Anthropic内部用了一年的Code Simplifier开源了
比 Playwright 更给力:推荐一个AI Agent的浏览器自动化开源项目!