Függvények kiterjesztései (Extension methods) Egy statikus osztály csak statikus tagokkal (adat vagy függvény) rendelkezhet. Ez a programunk számára azt jelenti, hogy ezen adatok, függvények, ha publikusak, bárki számára elérhetők. Ilyen statikus osztályban megengedett az a függvénydefiníciós forma is, mikor az első paramétert megelőzi a this kulcsszó. public static típus függvénynév (this típus, név, tov.paraméterek) { függvénytörzs; }; Az így definiált függvény meghívhatjuk "hagyományos" módon is, de úgy is, mint az első paraméternek mint objektumnak egy függvényt! 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 hiba vagy kivétel dobása céljából használhatjuk. Amikor egy kivételt dobunk (throw-val), akkor valamilyen előre definiált kivételosztály egy példányát kaphatjuk vissza, vagy saját magunk által definált kivételosztályt. 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 kivételes helyzet áll fenn, amely kezelést igényel.