C# : Gestire metodi obsoleti

Quando si scrive del codice ridistribuibile o comunque quando il codice che noi scriviamo può o deve essere usato da altri sviluppatori è importante che sia documentato il più possibile in modo che sia semplice da utilizzare per chi non lo conosce.

Questo discorso vale per qualsiasi ambiente di sviluppo si usi e per qualsiasi linguaggio.

Una delle situazioni cui possiamo andare incontro è quella di dover scrivere un metodo che ne sostituisca un altro che quindi diventa obsoleto.

In questo caso per compatibilità in genere non si cancella il metodo vecchio ma bisogna far sapere a chi usa il nostro codice che è disponibile un metodo nuovo.

Nel caso scriviamo in C# abbiamo degli strumenti che permettono di avvisare gli eventuali utilizzatori del nostro codice che si prevede di deprecare un metodo a breve o comunque avvisarli del fatto che è ne presente uno nuovo.

Per far questo si può utilizzare l’attributo Obsolete.

Vediamo un esempio di codice C #.

[Obsolete("This method will be deprecated soon. You could use XYZ alternatively.")]
        public void MyComponentLegacyMethod()
        {
            //Here is the implementation
        }

Inserendo l’attributo Obsolete prima della dichiarazione del metodo in fase di compilazione il sistema visualizzerà un alert avviso in cui sarà presente il messaggio indicato come parametro.

La compilazione andrà comunque a buon fine ma lo sviluppatore sarà informato del fatto che il metodo è da ritenersi obsoleto.

csharp-obsolete

Se invece usiamo la sintassi seguente

[Obsolete("This method is deprecated. You could use XYZ alternatively.", true)]
        public void MyComponentLegacyMethod()
        {
            //Here is the implementation
        }

in cui è presente un secondo parametro impostato a true, il risultato sarà identico al precedente ma non si tratterà più di un avviso ma di un errore
che quindi bloccherà la compilazione.

csharp-obsolete2



About Mauro De Filippis 2443 Articles
Laureato in Ingegneria Informatica nel 2008 presso l'Università degli Studi di Lecce con una tesi in Processi di Produzione Robotizzati dal titolo "Integrazione delle tecniche di progettazione del ciclo di lavorazione con programmazione della produzione”. Le mie attività principali sono : sviluppo di applicativi ANSI C per terminali POS basati su processori ARM Risc 32Bit con 2-4 MB di Ram (progettazione, sviluppo e test delle applicazioni ) sviluppo in ambiente .NET sviluppo Web in ambiente PHP, ASP Installazione, progettazione, utilizzo di Db MS SQL Server, Mysql, Acces , Oracle Da anni mi occupo di CMS Open Source, in particolare di Joomla e Wordpress. Mia è la Guida Wordpress 3.5, la Guida Joomla 2.5 , il Corso online Joomla! 2.5 ed il Corso online Wordpress Mi occupo anche di LMS in particolare di Moodle e Docebo. Google+ by Mauro De Filippis

Be the first to comment

Leave a Reply

L'indirizzo email non sarà pubblicato.


*