روشی برای تزریق یک متود تعریف شده به سایر کلاسها بدون دسترسی به سورس و کامپایل مجدد است.
(البته این تزریق بصورت موقت و ظاهری است و در پشت پرده از طریق یک متود استاتیک اینکار انجام میشود.)
مثال - میخواهیم متودی به کلاس string بیافزاییم که آخرین حرف یک رشته را برگرداند. یک کلاس استاتیک به شکل زیر تعریف میکنیم : (توجه : اسم کلاس اهمیتی ندارد)
public static class MyExtensions
{
public static string GetLastCharacter(this System.String str)
{
return str.Substring(str.Length-1, 1);
}
}
حال میتونیم این متد را در لیست متدهای یک string - مانند زیر - مشاهده کنیم :
string temp = "Sinpin";
MessageBox.Show( temp.GetLastCharacter());