Posts
14
Comments
89
Trackbacks
4
[VS2008] Extension Methods

Una delle novità di Visual Studio 2008 (ovvero del Framework 3.5) è l’esistenza di quelli che sono definiti “Extension Methods”. Attraverso tali metodi è possibile estendere una classe (anche quelle di base) senza doverla per forza derivare.

Il tutto si sviluppa intorno alla costruzione di una classe statica e di uno o più metodi statici, caratterizzati dall’utilizzo dell’operatore “this” tra i parametri.

Vediamo l’utilità di quanto appena descritto con un esempio :

namespace ConsoleTest

{

    public static class clsExtension

    {

        public static bool IsInt32(this string pString)

        {

            Int32 tNumber;

            bool tResult = Int32.TryParse(pString, out tNumber);

            return tResult;

        }

    }

}

Questa è la classe statica che ci permette di estendere la classe base “String”, aggiungendole il metodo “IsInt32” che restituisce true o false a seconda che il contenuto della stringa sia, oppure no, un Int32.

L’utilizzo della sopraccitata classe è decisamente semplice :

static void Main(string[] args)

{

  string tStr = "1234";

  Console.WriteLine("{0} is number : {1}", tStr, tStr.IsInt32());

  tStr = "abc";

  Console.WriteLine("{0} is number : {1}", tStr, tStr.IsInt32());

  Console.ReadKey();

}

In questo modo abbiamo aggiunto alla classe String la possibilità di restituire, senza troppi giri e/o ripetizioni, un valore boioleano che ci indichi se questa contiene un numero (Int32) valido oppure no. Ovviamente, questa è solo una delle innumerevoli possibilità, limitate solo dalla nostra fantasia e dalle nostre necessità...

Questa è una delle “chicche” scritte da Dino Esposito in un interessante (ma purtroppo breve) articolo intitolato “Inside Visual Studio 2008”, pubblicato su Dr.Dobb’s Journal di Febbraio 2008. Che dire ? Ancora una volta, Grazie Dino !!!!!!

 

posted on domenica 17 febbraio 2008 17:28 Print
Comments have been closed on this topic.
News
Titolo
Ecco uno scatto rubato al duro lavoro in "miniera"

...e per non dimenticare mai che il tempo passa, questa è la mia età :

La "Miniera" :

Visite dal 27/11/2007 :