【发布时间】:2010-08-07 00:32:48
【问题描述】:
它当然不会脱离 .NET 框架的标准实践。当我看到a + b 时,我总是假设会创建一些新的东西。
static void Main(string[] args)
{
var list = BuildList(ImmutableList<int>.Empty);
var sum = (list + 500).Sum();
Console.WriteLine(sum);
Console.ReadLine();
}
static ImmutableList<int> BuildList(ImmutableList<int> list)
{
if (list.Count < 1000)
{
return BuildList(list + list.Count);
}
return list;
}
更新
请参阅 Jon Skeet 的帖子,了解 name methods on immutable lists 的内容。
令人惊讶的反应
看到这么多答案都同意这是有道理的,我感到非常惊讶。原则上我也同意,但是对于我来说,阅读冗长的代码要比那些不习惯阅读简洁的代码的人更容易阅读。从我的工作经验来看,他们似乎是大多数。
【问题讨论】:
-
当然,这基本上是 Haskell 的列表理解。没有错。
标签: c# operator-overloading immutability