Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523

    Strutture con funzioni..

    Ciao a tutti,
    sto impazzendo nel creare un programma che contiene una struttura composta da funzioni e variabili.. Lanciando una funzione della struttura vorrei riempire le altre variabili della struttura stessa.. contorta la cosa.. vero?
    E' possibile?

    Cerco con un esempio di essere più chiaro:
    Codice PHP:
    public structure mystruct1
        
    public MyVar1 as int32
        
    public MyVar2 as int32
    end structure

    public structure mystruct
        
    public MyVar3 as int32
        
    public function myfunc(str as string) as mystruct1
        
    '... corpo della funzione
        end function
    end structure

    dim myvar as mystruct 
    è possibile nel corpo della funzione assegnare dei valori a myvar1 myvar2.
    e' possibile assegnare un valore anche a myvar3??

    Onestamente non mi sempra possibile.. però se qualcuno ha un'idea..

    ciao
    andrea
    Ciao
    Andrea

  2. #2
    Scusa ma perchè non usi una classe?

  3. #3

    Re: Strutture con funzioni..

    Originariamente inviato da Gugu
    Onestamente non mi sempra possibile..
    cosa scrivi al posto di
    '... corpo della funzione
    ?
    Saluti a tutti
    Riccardo

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    E' molto probabile che io non abbia capito bene il senso della domanda Ma, ammettendo di averne capito il senso, il metodo myfunc della struttura mystruct può certamente manipolare variabili pubbliche o private della sua istanza corrente, MyVar3.
    Non può invece manipolare nessun elemento di mystruct1, MyVar1 e Myvar2, ma solo le variabili di istanze di quella struttura.
    In altri termini, prima creerò una istanza di mystruct1

    da dentro il metodo...
    dim ms as mystruct1
    ms.MyVar1 = PincoPallino...


    invece, puoi popolare variabili di una struttura al momento della creazione dell'istanza, e questo aggiungendo un nuovo costruttore parametrizzato

    Per essere più chiari, suppongo di creare una struttura Point. Point contiene le coordinate, x e y, la chiave ed il nome del punto.
    codice:
        Public Structure Point
            Public Sub New(ByVal x As Double, ByVal y As Double)
                Me.New(x, y, "", "")
            End Sub
            Public Sub New(ByVal x As Double, ByVal y As Double, ByVal key As String, ByVal name As String)
                Me.x = x
                Me.y = y
                Me.key = key
                Me.name = name
            End Sub
    
            Public x As Double
            Public y As Double
            Public key As String
            Public name As String
        End Structure
    e la richiamo nel solito modo
    Dim p as New Point(1.0, 2.0, "chiave", "nome")
    Pietro

  5. #5
    Siccome non le uso ti chiedo

    Non esiste ereditarietà o implementazione delle interfacce?

  6. #6
    la richiesta iniziale (se anche io non ho capito male) corrisponde ad una esigenza abbastanza comune che si risolve con un semplice pattern il cui nome ora mi sfugge che permette di incapsulare in una classe (o struttura come in questo caso) l'istanza di un'altra classe. Chiedevo appunto di dire lui cosa avrebbe messo perche' il codice postato non era chiaro
    es.
    codice:
    Public Structure mystruct1
        Public MyVar1 As Int32
        Public MyVar2 As Int32
    End Structure
    
    Public Structure mystruct
        Public MyVar3 As Int32
        Private m_ms1 As mystruct1
    
        Public Function myfunc(ByVal _var1 As Int32, ByVal _var2 As Int32) As mystruct1
            'corpo della funzione 
            If IsNothing(m_ms1) Then
                m_ms1 = New mystruct1
            End If
            m_ms1.MyVar1 = _var1
            m_ms1.MyVar2 = _var2
            Return m_ms1
        End Function
    End Structure
    Saluti a tutti
    Riccardo

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da raffaeu
    Siccome non le uso ti chiedo

    Non esiste ereditarietà o implementazione delle interfacce?

    :master:
    Pietro

  8. #8
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    Ciao a tutti!
    Rieccomi qui dopo le vacanze in sardegna :-)

    Allora,
    il problema era che volevo crearmi una struttura (sicuramente sbaglio proprio perchè no uso una classe!) per ottenere una cosa del genere (faccio un esempio per rendere più facile da capire il risultato richiesto):

    vorrei una classe (a questo punto) che ingloba una funzione di somma e partendo da un numero iniziale.. tipo:

    Dim Risult as int32
    MiaClasse.NumeroIniziale=10
    Risult = MiaClasse.Somma(5).Risultato
    'Avrò Risult=15
    Risult = MiaClasse.Somma(5).Somma(23).Risultato
    Parz = MiaClasse.Somma(5).Parziale

    NB: La variabile Parziale della struttura dovrebbe essere gestita non durante l'esecuzione
    della funzione Somma(5), ma quando viene eseguita la stessa funzione ma la seconda volta.. Somma(23).
    So che è un po' contorta come cosa.. e l'esempio non calza benissimo, però sarebbe troppo
    complicato spiegarvi il mio problema!
    Il punto critico alla fine è che vorrei che quando viene eseguita la funzione Somma(23) dell'esempio, la variabile MiaClasse.Somma(5).Parziale assumesse ad esempio lo stesso valore di MiaClasse.Somma(5). Risultato ma non prima! Sarebbe molto facile se lo facessi quando eseguo Somma(5) ma nel mio caso non sarebbe possibile..

    Vi premetto che ho risolto in altro modo.. scrivendo molto più codice e con diversi loop..
    mi piacerebbe però capire la cosa per imparare a programmare meglio
    Ciao
    Andrea

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887


    sei sicuro di non aver intrapreso una strada contorta e che il tuo problema non si possa risolvere con le semplici classi ed i loro metodi, costruttori e proprieta' espositive ?


    ... Poi scusami, ma non ho capito una cosa: che significa :

    codice:
    NomeClasse.Metodo(Parametro).AltraCosa ?

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    ahh sorry ho capito il metodo torna un oggetto di cui chiami una proprieta'...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.