A39. Le librerie
Una libreria è un insieme di namespace, classi, tipi e metodi che può essere compilato e usato successivamente importandolo nel proprio
progetto. Le librerie compilate generano un file *.dll, un assembly, contenente tutte le informazioni scritte dal programmatore: questo file
può essere impiegato da altri programmatori o dal coder stesso, anche in altri linguaggi .net.
Per creare un progetto di questo genere, cliccare su File->New Project e quindi selezionare "Class Library" e, dopo avervi assegnato un nome (io ho usato "Esempio"), cliccare su OK. La schermata che si presenta propone un codice standard:
Per creare un progetto di questo genere, cliccare su File->New Project e quindi selezionare "Class Library" e, dopo avervi assegnato un nome (io ho usato "Esempio"), cliccare su OK. La schermata che si presenta propone un codice standard:
Dato che il progetto è una libreria di classi, il nostro compito sarà esclusivamente quello di scrivere codice non eseguibile nell'immediato, ma riusabile in futuro. L'esempio che propongo ora crea una libreria contenente un namespace Matematica, al cui interno si trova una classe che fornisce metodi statici per la modifica dei dati statistici.Class Class1End Class
Ora che la classe è pronta, basta premere Build->Build [Nome progetto] (se avete un compilatore in italiano, "Genera") per avere il file *.dll compilato nella sottocartella bin\release del progetto. Per importarlo in un altro progetto, basta cliccare, nel solution explorer (per maggiori informazioni sulle finestre del compilatore, vedere capitolo 49), su [Nome progetto]->Add Reference e selezionare, sfogliando le cartelle, la libreria così creata. Ora sarà possibile accedervi anche da codice: ricordarsi, però, di importarla nel progetto con Imports, ad esempio:Namespace Matematica 'La classe fornisce solo metodi statici, quindi non può essere 'ereditata Public NotInheritable Class Statistica 'Funzione statica che restituisce la media aritmetica dei 'valori immessi come parametro Public Shared Function MediaAritmetica(ByVal ParamArray Valori() _As Single )As Single Dim SommaAs Single For IAs Int32 = 0To UBound(Valori) Somma += Valori(I)Next Return Somma / Valori.LengthEnd Function 'Funzione statica che restituisce l'errore assoluto di 'una serie di misure, con il metodo della semidispersione Public Shared Function Semidispersione(ByVal ParamArray Valori() _As Single )As Single 'Calcola il massimo e il minimo valore Dim Max, MinAs Single For IAs Int32 = 0To UBound(Valori)If Valori(I) > MaxThen Max = Valori(I)End If If Valori(I) < MinThen Min = Valori(I)End If Next 'Restituisce la semidifferenza tra Max e Min Return (Max - Min) / 2End Function 'Funzione statica che restituisce l'errore assoluto di 'una serie di misure con il metodo della deviazione standard 'o scarto quadratico medio Public Shared Function DeviazioneStandard(ByVal ParamArray Valori() _As Single )As Single 'La media Dim MediaAs Single = MediaAritmetica(Valori)Dim SommaQuadratica, ScartoQuadraticoAs Single 'Calcola la somma del quadrato degli scarti For IAs Int32 = 0To UBound(Valori) ScartoQuadratico = (Valori(I) - Media) ^ 2 SommaQuadratica += ScartoQuadraticoNext 'Restituisce la radice quadrata della somma degli scarti 'quadratici fratto il numero degli scarti Return Math.Sqrt(SommaQuadratica / Valori.Length)End Function 'Funziona statica che restituisce l'errore relativo Public Shared Function ErroreRelativo(ByVal ParamArray Valori() _As Single )As Single 'La media Dim MediaAs Single = MediaAritmetica(Valori) 'L'errore assoluto Dim ErAssolutoAs Single = Semidispersione(Valori)Return ErAssoluto / MediaEnd Function 'Funzione statica che restituisce l'errore percentuale, 'già formattato a X cifre decimali e con il segno % Public Shared Function ErrorePercentuale(ByVal ErRelativoAs _Single ,ByVal CifreDecAs Byte )As String Return String .Format("{0:n" & CifreDec & "}%", _ ErRelativo * 100)End Function End Class End Namespace
Imports Esempio.Matematica
The Totem's Lair - Copyright (C) 2009
È vietata la riproduzione sia totale che parziale del sito.



