c# lambda表达式中的未检查关键字
本文关键字:检查 关键字 lambda 表达式 | 更新日期: 2023-09-27 18:05:47
我使用linq aggregate()来处理可能的Int32溢出:
items.Aggregate(0, (acc, item) => { unchecked { return acc * 10000 + item.Id; } });
有没有简化表达式的方法?
类似async,例如:
async () => {}
可以去掉{}
和return
语句:
items.Aggregate(0, (acc, item) => unchecked (acc * 10000 + item.Id));
只是出于好奇,我做了一些测试…如此:
unchecked
{
int res = items.Aggregate(0, (acc, item) => acc * 10000 + item.Id);
Console.WriteLine(res);
}
(我创建的测试应用程序是checked
,所以如果我删除unchecked
,我得到OverflowException
)