Newsgroup: it.comp.lang.visual-basic
Titolo: Incapsulamento?( non so se si dice cosi)

Little problem
Sintetizzo
 Ho 2 classi (A e B) dove B deve vedere A ossia una di proprietà di B
dipende da una proprietà di A
La PropertyGet di B è
Public Property Get AdPersonam() As Double
  Select Case Impiegato.Provenienza
  Case "1stFloor"
        If Impiegato.QualProv = "A1" Then
            AdPersonam = 422.65
        ElseIf Impiegato.QualProv = "B2" Then
            AdPersonam = 406.05
        ElseIf Impiegato.QualProv = "B3" Then
            AdPersonam = 324.05
        ElseIf Impiegato.QualProv = "C4" Then
            AdPersonam = 319.28
        End If
  Case "2ndFloor"
        AdPersonam = 0
  End Select
End Property
Il mio problema è che non riesco a fargli vedere quella proprietà
Inizialmente mi diceva Variabile Impiegato non definita ma se io nella Get
la dichiaro come Dim Impiegato as New CImpiegato mi istanzia un oggetto
nuovo
con proprietà tutte a zero.
Purtroppo ho dimenticato il libro ( ultimo acquisto ) che tanto mi è stato
caro negli ultimi mesi
a Napoli e non so dove sbattere la testa.
Cosa mi perdo?
Debby!

 dipende da una proprietà di A
più che altro, la proprietà di una certa istanza di b, dipende dal valore di
una proprietà di una certa istanza di a.
non so se sono stato chiaro, ma il succo sta qui: l'ipotetico oggetto objb,
istanza della classe b, deve avere un riferimento a obja, istanza della
classe a.
certo di averti ulteriormente confuso le idee, ti saluto caramente.
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo


Secondo me l'unico modo sarebbe che tu ricevessi il riferimento alla classe
nella chiamata di proprietą.
(quella property da chi viene chiamata? dal consumatore dell'oggetto?)
A quel punto perņ ti conviene fare una funzione.
Ad esempio
Public Function AdPersonam(Imp as Impiegato) As Double
   Select Case Imp.Provenienza
   Case "1stFloor"
         If Imp.QualProv = "A1" Then
             AdPersonam = 422.65
         ElseIf Imp.QualProv = "B2" Then
             AdPersonam = 406.05
         ElseIf Imp.QualProv = "B3" Then
             AdPersonam = 324.05
         ElseIf Imp.QualProv = "C4" Then
             AdPersonam = 319.28
         End If
   Case "2ndFloor"
         AdPersonam = 0
   End Select
 End Property
Poi, le proprietą della classe impiegato le farei friend
-- 
Guarda, ma non toccare!
Tocca, ma non gustare!
Gusta, ma non inghiottire!
Per rispondere in privato elimina dall'indirizzo "togliquesto"
MasterDavidex - David Ruscelli

L'errore che mi dava era il 91 allora andandomi a leggere l'archivio del NG
ho dedotto che avevo dichiarato male gli oggetti.
Ora ho risolto ma non so se ho fatto bene, più volte mi è stato detto che
anche se il risultato viene bisogna vedere come sono state dichiarate
le variabile. Ebbene ho dichiarato in un "modulo di classe"  tutti gli
oggetti come Public (in totale sono 6)
Ora io mi chiedo ho fatto bene visto che quando si dichiarano variabili come
Public bisogna stare molto attenti?
Oggetti del mio progetto:
A -  B - C -  D -  E -  F
A deve vedere C
B deve vedere A - C - D
D deve vedere A - F
E deve vedere A - B - C
F deve vedere A - C
Con questa spiegazione che non è un esempio preso cosi per caso ma è
effettivamente quello che ho creato, cioè
l'istanza di quel dato Oggetto deve vedere le proprietà degli oggetti che ho
scritto sopra.
Sergio perdonami ho capito quello che mi hai scritto anche se non sembra.
A parole non sono brava!
Debby  ----)@

 F deve vedere A - C
Come hai fatto tu tutti vedono tutti...
Funziona lo stesso, però non hai raggiunto quello che volevi, ovvero scope
di visibilità limitati all'indispensabile per ogni classe...