Usare la disambiguazione con gli extension members in C# 14

di Stefano Mostarda, in .NET Framework,

Quando si usano diverse librerie può capitare di avere extension members con lo stesso nome sullo stesso tipo. Se nella nostra classe dobbiamo usare classi di queste librerie, abbiamo il problema che il compilatore non saprebbe quale extension member usare. In questi casi dobbiamo usare la disambiguazione cioè chiamare direttamente il metodo all'interno della classe statica. Con i metodi questa cosa è molto semplice in quanto basta invocarli staticamente passando come primo parametro il tipo che estendiamo.

public static class MyExtensions
{
    extension(string input)
    {
        public void IsNullOrWhiteSpace() => return String.IsNullOrWhiteSpace(input);
        public void IsLongerThan3 => return input.Length > 3;
    }
}

var x = "test";
var b = MyExtensions.IsNullOrWhiteSpace(x);

Una proprietà non accetta parametri, quindi come si risolve? Da sempre le proprietà sono semplici wrapper di metodi sottostanti generati dal compilatore. Quando creiamo una proprietà come extension member, il compilatore genera per noi un getter pubblico da invocare appositamente quando dobbiamo disambiguare. Il nome del metodo è get_proprietà

var x = "test";
var b = MyExtensions.get_IsLongerThan3(x);

Commenti

Visualizza/aggiungi commenti

| Condividi su: LinkedIn, Facebook

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi