public static típus függénynév(this típus név, tov.paraméterek){ függvénytörzs; }; Az így defininált függvény public static class Intkiterjesztesek { public static int Factorial(this int szam) { if (szam < 0) { throw new ArgumentException("A negatív számoknak nincs faktoriálisa"); } if (szam == 0 || szam == 1) { return 1; } int result = 1; for (int i = 2; i <= szam; ++i) { result *= i; } return result; } } class Program { static void Main(string[] args) { int szam = 5; int factorial = szam.Factorial(); Console.WriteLine($"{szam}! = {factorial}"); } } A this kulcsszó használatával a függvénykiterjesztésekben az objektum, amelyre alkalmazni szeretnénk a kiterjesztett metódust, paraméterként jut át a metódusnak. Ez a példa egy egyszerű függvénykiterjesztés az int típushoz, amely a szám faktoriálisát számítja ki. A throw kulcsszót a hiba vagy kivétel dobása céljából használhatunk. Amikor egy kivételt dobunk akkor valamilyen előre definiált kivételosztály egy példányát kaphatjuk vissza, vagy saját magunk által definiált kivételosztály. A throw tehát lehetővé teszi számunkra, hogy megállítsuk a program futását és jelezzük, hogy valamilyen probléma vagy kivlételes helyzet áll fennm amely kezelést igényel.