关于C# Action委托中未声明参数却可赋值的技术疑问
问题解答:为什么
Action<bool>委托的Lambda参数无需显式声明类型? 这段代码里的isVisible并非没被声明,只是编译器帮你做了类型推断,自动确定了它的类型。
具体来说:
Action<bool>是C#预定义的泛型委托,它明确要求接受一个bool类型的参数,且没有返回值。- 当你把Lambda表达式
(isVisible) => { }赋值给这个委托变量时,编译器会根据委托的泛型参数<bool>,自动推断出Lambda参数isVisible的类型是bool——相当于你写了(bool isVisible) => { },只是省略了显式的类型声明。
这种类型推断是C#的语法糖,目的是让代码更简洁。只有当Lambda表达式有明确的“目标类型”(比如这里的Action<bool>)时,编译器才能完成这种推断;如果没有明确的目标类型,就必须显式声明参数类型。
内容的提问来源于stack exchange,提问作者Shriniketh
相关产品推荐
相关产品推荐

