[Vb.net] Istanza accessibile da tutti i form e non legata a nessuno di...

domenica 14 settembre 2008 - 08.30

seven.7 Profilo | Junior Member

Ho creato una classe in un file .vb che tra le sue funzioni è anche un database pertanto ha una variabile pubblica di tipo Dictionary. Nel Form1 ho creato una istanza ed ho cominciato a lavorare. Tutto funzionava finchè mi sono posto un problema di eleganza di codice, ovvero: ho creato il Form2 che deve utilizzare dati resenti nel database e per richiamarlo (il database dictionary) ho utilizzato il semplice codice my.application.form.form1.etc...
Ovviamente tutto funziona ma io volevo un codice più indicato se esiste (credo sicuramente). Creare una istanza che sia accessibile da qualsiasi parte dell'applicazione se indicare il form in cui a preso vita. E' possibile? spero di essere stato esplicito ed in ogni caso GRAZIE MILLE!!!

aiedail92 Profilo | Expert

Ciao

Potresti aggiungere un modulo all'applicazione e istanziare la tua classe una volta sola:

Module IstanzeCondivise 'Questo elemento è statico, quindi viene condiviso in tutta l'applicazione Dim istanza as TuaClasse = Nothing 'Questo metodo istazia la classe solo se non è già creata, quindi ritorna l'istanza Public Function OttieniIstanza() as TuaClasse If istanza Is Nothing istanza = New TuaClasse() End If Return istanza End Function End Module Class TuaForm Inherits Form Sub FaiQualcosa() 'Ottiene l'istanza, se è la prima volta che viene ottenuta, la istanzia anche Dim istanza As TuaClasse = IstanzeCondivise.OttieniIstanza() 'Lavora sull'istanza istanza.ecc() End Sub End Class

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5