是否可以使用2.0 Framework创建扩展方法?

我想知道是否有办法使用Visual Studio 2005和2.0框架创建扩展方法?

public static class StringExtensions { public static void SomeExtension(this String targetString) { } } 

如果没有办法做到这一点,等价物会是什么? 只是在某种库类中创建静态方法?

如果使用C#3.0编译器和Visual Studio 2008或更高版本,则可以使用.Net framework 2.0创建扩展方法。

问题是您必须将此代码添加到项目中:

  namespace System.Runtime.CompilerServices { public class ExtensionAttribute : Attribute { } } 

基本上,您需要在项目中重新声明Core.dll(.Net 3.5 +)中的ExtensionAttribute。

不,这在.Net 2.0中是不可能的(不使用C#3.0编译器)。 您可以创建完全相同的静态方法:

 public static class StringExtensions { public static void SomeExtension(String targetString) { // Do things } } // Example use: StringExtensions.SomeExtension(targetString); 

实际上,扩展方法只是编写上述内容的简便方法。