C#
Добавляем новый метод AddValues в List
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleCSharp1
{
static class Program
{
static public void AddValues(this List<int> myList, int value1, int value2)
{
myList.Add(value1);
myList.Add(value2);
}
static void Main(string[] args)
{
// создаем список
List<int> list = new List<int>();
// добавляем значения (вызываем метод расширения)
list.AddValues(6, 25);
// показываем значения на экран
foreach (int v in list)
Console.WriteLine(v);
}
}
}
C#
Добавляем новый метод GetBooksCount в IEnumerable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
static class Book
{
public static int GetBooksCount(this IEnumerable<string> a)
{
return 10;
}
}
class Program
{
static void Main(string[] args)
{
IEnumerable<string> myEnum = null;
int a = myEnum.GetBooksCount();
// a = 10
}
}
}
Внимание!
• метод расширения может быть только статическим методом.
• методы расширения действуют на уровне пространства имен. То есть, если добавить в проект другое пространство имен, то метод не будет применяться. Надо будет подключить пространство имен метода через директиву using.
При создании метода расширения может быть такая ошибка:
Ошибка компиляции C#: error CS1106: Extension method must be defined in a non-generic static class ...