Extension Methods
Extension Methods
In VbLuaNet, dalla versione 20.2.0 sono supportate le chiamata agli Extension Methods. Gli EM sono dei trucchi sintattici che permettono di estendere le funzionalità di tipi .NET.
L'implementazione di un EM in C# avviene definendo un metodo statico il cui primo parametro è l'oggetto da estendere preceduto dalla parola chiave this e, a seguire, tutti gli argomenti. Esempio:
/// <summary>
/// Person class
/// </summary>
public class Person {
public string Name {get; set};
private string Surname {get; set};
}
/// <summary>
/// extend the Person class
/// </summary>
public static class PersonExtender
{
public static void SetFullName(this Person person, string name, string surname)
{
person.name = name;
person.surname = surname;
}
}
Questo permette di eseguire una chiamata come questa:
var p = new Person("Name", "Surname")
person.SetFullName("Nome", "Cognome")
Dalla versione indicata è possibile utilizzare la stessa sintassi anche in LUA.
Importante
Perché VbLuanet possa gestire gli Extension Methods è necessario che l'assembly che definisce l'EM sia caricato utilizzando importassembly e non loadassembly.