我想知道是否有方法使用Visual Studio 2005和2.0框架创建扩展方法?是否可以使用2.0框架创建扩展方法?
public static class StringExtensions
{
public static void SomeExtension(this String targetString)
{
}
}
如果没有办法做到这一点,等值是什么?只需在某种库类中创建静态方法?
我想知道是否有方法使用Visual Studio 2005和2.0框架创建扩展方法?是否可以使用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的ExtensionAttribute(.NET 3.5 +),在您的项目。
好的谢谢,所以它看起来可能与VS2008和2.0,但不是VS2005和2.0,谢谢! – DevDemon 2010-02-17 13:06:35
不,这在.Net 2.0中是不可能的(不使用C#3.0编译器)。然而,你可以创建静态方法来完成相同的事情:然而,
public static class StringExtensions
{
public static void SomeExtension(String targetString)
{
// Do things
}
}
// Example use:
StringExtensions.SomeExtension(targetString);
实际上,扩展方法只是写上述的简写方法。
它**是可能的...... – 2010-02-17 13:03:28
@Andreas如果你使用C#3.0编译器,这是*绝对*作弊。 – Justin 2010-02-17 13:05:19
但可能...所以你的回答是错误的。这是真的,如果它声明'这是不可能的使用.net 2.0编译器' – 2010-02-17 13:06:14
您是否使用Visual Studio 2008或2005? – 2010-02-17 13:04:25
我使用VS2005 – DevDemon 2010-02-17 13:06:57
,那么你运气不好。 – 2010-02-17 13:13:43