Extension methods شما را قادر میسازند تا به typeهای موجود بدون اینکه کلاس جدیدی ایجاد کنید که از آنها به ارث رفته باشند، متدهای جدیدی اضافه نمائید و بیشترین استفاده آنها در System.Collections.IEnumerable است.
به طور مثال این امکان وجود ندارد که بتوان بر روی IEnumerableها از دستور Foreach استفاده کرد.
برای نمونه من برای اینکه foreach داشته باشم، آنرا به لیست تبدیل میکردم و سپس از امکان foreach بهرهمند میشدم که شاید کار درستی نباشد.
اما با Extension Method افزودن متد foreach به IEnumerable به نحو زیر میسر است:
public
static
void
ForEach<T>(
this
IEnumerable<T> collection,
Action<T> action)
{
foreach
(var item
in
collection)
{
action(item);
}
}