Oppure

Loading
12/04/13 10:29
orma674
Buongiorno a tutti,
volevo chieder aiuto visto le ricerche senza risultato in internet.
Vorrei costruire una DLL in vb.net con funzioni e subroutine in strutture che rispondono in modo diverso rispetto a chi le chiama.

es:

Public Class Class1
Structure strTest
Sub subTest()
''' se la struttura è assegnata a n1 rispondi con la compilazione dei fornitori
''' se la struttura è assegneta a n2 rispondi con la compilazione dei clienti
End Sub
End Structure

Public n1 As strTest
Public n2 As strTest
End Class

Questa classe è chiamata più volte da diverse parti del programma.
Come faccio a sapere se la sub all'interno della struttura è chiamata da n1 o n2?

Grazie per la collaborazione.
aaa
12/04/13 15:05
Uno sciame di API
Al posto di scrivere
Sub subTest()
            ''' se la struttura è assegnata a n1 rispondi con la compilazione dei fornitori
            ''' se la struttura è assegneta a n2 rispondi con la compilazione dei clienti
End Sub 

prova a scrivere
Sub subTest(Byval n as Integer)
If n = 1 then
 ' se n è 1 rispondi con la compilazione dei fornitori
else
 ' se n è 2 rispondi con la compilazione dei clienti
end if
End Sub 

Poi, quando chiami la sub, gli passi 1 se la chiami da n1, o 2 se la chiami da n2. :)
aaa
12/04/13 16:00
pierotofy
Postato originariamente da orma674:
Come faccio a sapere se la sub all'interno della struttura è chiamata da n1 o n2?


Non puoi; dovrai usare un altro modo per differenziare la chiamata (ad esempio usando il metodo suggerito da Uno sciame di API).
Il mio blog: piero.dev
13/04/13 7:58
orma674
Quindi se io ho una struttura del tipo:

Structure Albero1
var1 as Albero2
var2 as Albero2
end structure

Structure Albero2
sub a1
''codice
end sub

sub a2
''codice
end sub
end structure

public main1 as Albero1
public main2 as Albero2

La mia chiamata sarà:

main1.var1.a1

Quando esegue il codice a1 non posso identificare in automatico la traccia della struttura che chiama la sub?
Devo passare sempre il riferimento?

Grazie per la collaborazione.

p.s. Mi hanno suggerito StackTrace, ma non riesco ad ottenere quello che voglio.
aaa