Nascondere una classe all'esterno

venerdì 18 gennaio 2013 - 15.30
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows XP

Zixower Profilo | Newbie

Ho questa necessità, ma non riesco a capire come svilupparla (se è possibile farlo):

In un progetto libreria voglio creare una classe contenente delle proprietà che richiamano una variabile presente in un modulo. Questa classe verrà poi sfruttata dalle altre classi per poter usare le sue proprietà. Quello che voglio fare è, nei programmi che usano la libreria come risorsa, di non far vedere la classe con le proprietà, ma le proprietà devono essere visibili nelle altre librerie. Esempio:

Friend Module Supporto Friend Contatore As Int16 End Module Public Class Elaboratore Public ReadOnly Property Leggi_Valore As Int16 Get Return Contatore End Get End Property End Class Public Class Strumenti_Uno Inherits Elaboratore Public Sub BlaBla ... End Sub ... End Class

Con questo codice di esempio, posso dichiarare una variabile richiamando dalla libreria la classe Strumenti_Uno:

Dim Variabile As New Libreria.Strumenti_Uno

Variabile mi permetterà di usare la proprietà Leggi_Valore, ma durante la dichiarazione, insieme a Strumenti_Uno mi verrà proposta anche la classe Elaboratore.
Pertanto vi chiedo se fosse possibile tenere nascosta all'esterno la classe Elaboratore. Ho provato a fare varie combinazioni tra Public, Friend, Protected e Private, ma non sono riuscito a venirne a capo.

Vinsent Profilo | Senior Member

Vedi se ti va bene così...:

Friend Module Supporto Friend Contatore As Int16 End Module 'Modifica: la classe da Public a Friend per limitarne 'la visibiltà all' esterno Friend Class Elaboratore Public ReadOnly Property Leggi_Valore As Int16 Get Return Contatore End Get End Property End Class Public Class Strumenti_Uno 'Modifica: invece di ereditare(inherits) si crea ' un nuovo oggetto dal quale ricavare le proprietà Dim New_Elaboratore As New Elaboratore Public Sub BlaBla() 'due righe per provare.... Contatore = 1 Console.WriteLine(New_Elaboratore.Leggi_Valore) End Sub End Class

Zixower Profilo | Newbie

Questa è la soluzione che sto adottando ora, ma volevo capire se potevo nasconderla usando l'inherit.

Grazie comunque per la risposta.

Zixower Profilo | Newbie

Vedo che non ci sono altri suggerimenti, pertanto penso che la tua soluzione sia la migliore.
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5