C#局部函数传递参数:显式声明还是捕获外部变量?
C# 7 局部函数:传递参数的两种实用方式
在C# 7里使用局部函数时,要是你需要把主方法里的参数或者局部变量传给它,有两种靠谱的选择,我给你拆解清楚:
1. 显式声明参数(像调用普通函数一样)
这种方式最直观,就和你平时写函数调用一样,给局部函数明确声明参数,然后在主方法里调用时把对应的变量传进去。优点是清晰明了,一眼就能看出局部函数依赖哪些外部值。
示例代码:
public int MultiplyFoo(int id) { return LocalBar(id); // 把主方法的id参数传给局部函数 int LocalBar(int number) // 显式声明参数number { return number * 2; // 这里用传入的number做逻辑 } }
2. 直接捕获包含方法的参数/变量
另一种方式更简洁,局部函数可以直接“捕获”主方法里已经存在的参数或者局部变量,不用额外声明参数。这种方式适合局部函数只在当前主方法里使用,且依赖的变量很明确的场景。
示例代码:
public int MultiplyFoo(int id) { return LocalBar(); // 调用时不用传参 int LocalBar() // 不用声明参数 { return id * 2; // 直接用主方法的id参数 } }
小提醒
两种方式各有优劣:显式传参让局部函数的依赖更透明,复用性稍强(如果以后局部函数要调整,参数变化更可控);捕获变量则更简洁,减少代码冗余。你可以根据实际场景选——如果局部函数逻辑和主方法耦合度很高,用捕获会更顺手;如果局部函数相对独立,显式传参更稳妥。
内容的提问来源于stack exchange,提问作者Dan Diplo
相关产品推荐
相关产品推荐

