.NET Framework 4中的每个程序员都应该知道的事情

Far*_*ruz 71 .net-4.0

我最近搬到了Visual Studio 2010并升级了我的网站以使用.NET Framework 4.(来自VS 2008 - Framework 3.5)

为了提高网站速度,可读性或内存使用,我需要了解哪些事项?

Sim*_*ens 66

Parallel类的其余部分提供了一些其他很棒的东西,比如Parallel.Invoke(...)Parallel.ForEach(...).

此外,如果您对Linq执行任何操作,则可以使用ParallelEnumerable.AsParallel()方法将Linq查询转换为并行运行.

它全部建立在Task Parallel Library之上,它提供了一组很好的API,用于以抽象的方式处理任务,可以扩展您的机器所拥有的任何资源,而无需过多考虑您正在创建的线程数量.

  • 真棒!正是我的意思!我一定会用的! (2认同)

Raf*_*eda 21

DirectoryInfo除了类GetDirectoriesGetFiles方法,现在有自己的懒惰版本EnumerateDirectoriesEnumerateFiles,避免了我们有大型阵列一次来保存所有对象.


Ian*_*cer 18

string.Join()现在有一个签名需要IEnumerable<T>,而不只是string[]-小的改进,可以让你撕裂了你的.Select().ToArray()代码.


小智 13

我只是喜欢web.config文件小而有意义的事实,而不是冗长且充满未知的语句......

  • 此外,它现在显示了Debug/Release的XML转换示例. (2认同)

Fah*_*had 12

可选参数是我的最爱之一.这种dynamic类型看起来很有希望

  • 请注意公共/虚拟方法上的可选参数:http://www.stum.de/2010/04/19/how-optional-parameters-work-why-they-can-be-dangerous-and-why-他们在网上工作23-但他们在内部/私人课程上是安全的. (3认同)

her*_*ter 9

C#实现event字段的方式是新的.lock (this)默认情况下它不再内部非常糟糕.事件仍然是线程安全的,但是因为Interlocked.CompareExchange(...)现在使用了一种机制.

这导致一些可能在某些边缘情况下破裂的变化.更多信息:


bri*_*ner 5

System.Numerics.BigInteger - 表示任意大的有符号整数.

System.Numerics.Complex - 表示复数.