Hur fungerar Extension Methods? was last modified: Dec 14th, 2015 by Albin Kiland

Hur fungerar Extension Methods?

24
Nov
2013
Albin Kiland blogg

I Xojo finns, som i många andra programmeringsspråk, Extension Methods.
(Detta inlägg förklarar hur de fungerar och kan användas i Xojo)

Extension Methods kan användas för att enkelt utöka funktionen i existerande classes utan att göra en subclass. De används genom en syntax som assosierar dem med ett bestämt objekt.
En Extension Method måste placeras i en Module för att fungera.
Jag brukar i alla projekt ha en Module som heter ExtensionMethods, det gör du som du vill.

Om du ofta skriver kod för att öka värdet på en integer

yourInt = yourInt + 1

kan du istället skapa en Extension Method för att göra det lite smidigare och enklare att läsa koden. Du skapar en vanlig Method(i en Module) men som den fösta parametern anger du ‘Extends…’ följt av det objekt du vill assosiera den med.

En Extension Method för att smidigt öka värdet på en integer skulle kunna se ut på följande sett.

Sub Add(ByRef Extends i as Integer, Optional amount as Integer = 1)
i = i + amount
End Sub

Här valde jag att ange ytterligare en parameter, amount, så att jag kan välja det värde jag vill öka min integer med. Anges inte denna parameter blir ‘amount’ automatiskt 1.

Så istället för att skriva
yourInt = yourInt + 10
kan du skriva
yourInt.Add(10)

Ett annat väldigt enkelt exempel är en Extension Method för att sätta citationstecken på en sträng.

Function dblquote(Extends str as String) As String
Return """" + str + """"
End Function

Används så här:
yourStr.dblquote

Det finns en hel massa olika användingsområden för Extension Methods!
Det är möjligt att jag kommer med fler exempel längre fram.