我想知道是否有办法使用Visual Studio 2005和2.0框架创建扩展方法?
public static class StringExtensions
{
public static void SomeExtension(this String targetString)
{
}
}
如果没有办法做到这一点,相同的是什么?只需在某种库类中创建静态方法吗?
答案 0 :(得分:18)
如果使用C#3.0编译器和Visual Studio 2008或更高版本,可以使用.Net framework 2.0创建扩展方法。
需要注意的是,您必须将此代码添加到项目中:
namespace System.Runtime.CompilerServices
{
public class ExtensionAttribute : Attribute { }
}
基本上你需要在你的项目中重新声明Core.dll(.Net 3.5 +)中的ExtensionAttribute。
答案 1 :(得分:3)
不,这在.Net 2.0中是不可能的(不使用C#3.0编译器)。您可以创建完全相同的静态方法:
public static class StringExtensions
{
public static void SomeExtension(String targetString)
{
// Do things
}
}
// Example use:
StringExtensions.SomeExtension(targetString);
实际上,扩展方法只是编写上述内容的简便方法。