Is it possible to create Extension Methods with 2.

2019-04-20 02:19发布

问题:

I was wondering if there is a way to create extension methods using Visual Studio 2005 and the 2.0 framework?

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

    }
}

If there is no way to do this, what would the equivalent be? Just create static methods in some sort of library class?

回答1:

You can create extension methods using .Net framework 2.0, if you use the C# 3.0 compiler and Visual Studio 2008 or greater.

The catch is that you have to add this code to your project:

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

Basically you need to re declare the ExtensionAttribute in Core.dll (.Net 3.5 +), in your project.



回答2:

No, this isn't possible in .Net 2.0 (without using the C# 3.0 compiler). You can just create static methods that do exactly the same thing however:

public static class StringExtensions
{
    public static void SomeExtension(String targetString)
    {
        // Do things
    }
}

// Example use:
StringExtensions.SomeExtension(targetString);

In reality extension methods are just a shorthand way of writing the above.