我想知道是否有方法使用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