Dotnet的局部函数和委托的对比 (2)

执行一下看看,实际不是这样。当我们使用迭代器时,方法并没有立即执行并返回异常,而是在我们使用结果foreach (string s in result)时,才执行并返回异常。这种情况,会让我们对于异常的判断和处理出现错误。

这时候,局部函数就是一个好的解决方式:

static void Main(string[] args) { var result = GetItemSellingPice(null); foreach (string s in result) { Console.WriteLine(s.ToString()); } } private static IEnumerable<string> GetItemSellingPice(List<OrderDetails> lstOrderDetails) { if (lstOrderDetails == null) throw new ArgumentNullException(); return GetItemPrice(); IEnumerable<string> GetItemPrice() { foreach (var order in lstOrderDetails) { yield return ($"Item Name:{order.ItemName}, Selling Price:{order.SellingPrice}"); } } }

现在,我们正确地在第一时间得到异常。

总结

局部函数是一个非常强大的存在。它与Lambda表达式类似,但有更优的性能。

又是一个好东西,是吧?

Dotnet的局部函数和委托的对比

 

微信公众号:老王Plus

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygjws.html