Можно ли создавать методы расширения с помощью 2.0 Framework?
Мне было интересно, есть ли способ создавать методы расширения с использованием Visual Studio 2005 и 2.0 framework?
public static class StringExtensions
{
public static void SomeExtension(this String targetString)
{
}
}
Если нет способа сделать это, каков будет эквивалент? Просто создайте статические методы в каком-то классе библиотеки?
Ответы
Ответ 1
может создавать методы расширения с использованием .Net framework 2.0, если вы используете компилятор С# 3.0 и Visual Studio 2008 и выше.
Уловка заключается в том, что вы должны добавить этот код в свой проект:
namespace System.Runtime.CompilerServices
{
public class ExtensionAttribute : Attribute { }
}
В основном вам нужно повторно объявить ExtensionAttribute в Core.dll(.Net 3.5 +) в вашем проекте.
Ответ 2
Нет, это невозможно в .Net 2.0 (без использования компилятора С# 3.0). Вы можете просто создавать статические методы, которые делают точно одно и то же:
public static class StringExtensions
{
public static void SomeExtension(String targetString)
{
// Do things
}
}
// Example use:
StringExtensions.SomeExtension(targetString);
В действительности методы расширения - это просто сокращенный способ написания выше.