问题
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.
来源:https://stackoverflow.com/questions/2280716/is-it-possible-to-create-extension-methods-with-2-0-framework