C#.NET 3.0 / 3.5在2.0的功能使用Visual Studio 2008

问题描述:

什么是一些可以在.NET 2.0中使用的新功能是专门针对C#3.0 / 3.5升级到Visual Studio 2008年后?此外,什么是一些功能不可用?

What are some of the new features that can be used in .NET 2.0 that are specific to C# 3.0/3.5 after upgrading to Visual Studio 2008? Also, what are some of the features that aren't available?

可用

  • lambda表达式
  • 扩展方法(通过声明一个空System.Runtime.CompilerServices.ExtensionAttribute)
  • 自动性能
  • 对象初始化
  • 集合初始化
  • LINQ到对象(通过实现IEnumerable的扩展方法,请参见 LinqBridge )李>
  • Lambdas
  • Extension methods (by declaring an empty System.Runtime.CompilerServices.ExtensionAttribute)
  • Automatic properties
  • Object initializers
  • Collection Initializers
  • LINQ to Objects (by implementing IEnumerable extension methods, see LinqBridge)

不可用

  • 防爆pression树
  • 在WPF / Silverlight库

您可以使用由编译器处理通过发射2.0兼容的IL,根本不涉及任何新的3.5组件的任何新的C#3.0的功能:

You can use any new C# 3.0 feature that is handled by the compiler by emitting 2.0-compatible IL and doesn't reference any of the new 3.5 assemblies:

  • 在Lambda表达式(用作 Func键< ..> ,不是防爆pression< Func键< ..>>
  • 扩展方法(通过声明一个空System.Runtime.CompilerServices.ExtensionAttribute)
  • 自动性能
  • 对象初始化
  • 集合初始化
  • LINQ到对象(通过实现IEnumerable的< T>扩展方法,请参见 LinqBridge
  • Lambdas (used as Func<..>, not Expression<Func<..>> )
  • Extension methods (by declaring an empty System.Runtime.CompilerServices.ExtensionAttribute)
  • Automatic properties
  • Object Initializers
  • Collection Initializers
  • LINQ to Objects (by implementing IEnumerable<T> extension methods, see LinqBridge)