Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    [vb net]accesso ai membri di una proprieta che accetta un tipo stucture

    ho un classe del genere che contiene
    una struttura, una prorieta di lettura/scrittura che accetta un tipo stucture e una variabile locale di tipo struttura

    codice:
    Public Class RegistroConservazione()
    
        Structure RecordArchivio
            Public idVolume As Integer
            Public NomeVolume As String
            Public NumeroProgressivo As Integer
            Public DataMasterizzazione As DateTime
            Public NumeroSetArchivio As Integer
            Public NomeOperatore As String
            Public NomeResponsabileConservazione As String
            Public DataStamp As DateTime
            Public DataTest As DateTime
            Public Nota As String
            Public Distrutto As Boolean
            Public DataDistruzione As DateTime
            Public NomeDistruttore As String
        End Structure
    
        Private _localRecord As RecordArchivio
    
        Public Property CurrentRecord() As RecordArchivio
            Get
                Return _localRecord
            End Get
            Set(ByVal value As RecordArchivio)
                _localRecord = value
            End Set
        End Property
    
    
    	'...........
    	'........
    	'.....
    
    End Class
    dopo aver istanziato la classe vorrei valorizare i campi della struttura attraverso la prorieta
    piu o meno in questo modo
    codice:
    	dim myClas as RegistroConservazione = new RegistroConservazione()
    
    	myClass.CurrentRecord.idVolume = 300
    	myClass.CurrentRecord.NomeVolume = "Elenco degli impiegati"
    	myClass.CurrentRecord.NumeroProgressivo = 6
    	'......
    	'....	
    	'..ecc ecc
    chiaramente cosi facendo mi restituisce questo errore:
    "L'espressione è un valore, quindi non può essere la destinazione di un'assegnazione. "

    devo modificare la proprieta? la struct?
    devo fare qualche cast per passargli i valori? una cosa del tipo....(chiaramente la sintassi è sbagliata. l'ho messa a casaccio)
    codice:
    myClass.CurrentRecord = ctype(300,RegistroConservazione.RecordArchivio.idVolume)
    myClass.CurrentRecord.idVolume = (300,RegistroConservazione.RecordArchivio)
    myClass.CurrentRecord = ctype(300,RegistroConservazione.RecordArchivio).idVolume
    quello che vorrei evitare è creare una struct locale(nel chiamante), valorizzarne i campi
    e pasarla alla proprieta(anche se magari è una soluzione piu pulita)
    ma sarebbe interessante anche a scopo didattico capire come posso passare i singoli valori direttamente alla proprieta(come se fossero tante proprieta)

  2. #2
    Semplice, utilizza un costruttore della struttura RecordArchivio. Successivamente, alla proprietà passi come valore una struttura inizializzata in riga, ad esempio così:
    codice:
    myClass.CurrentRecord = New RecordArchivio(val1, val2, val3, ecc...)

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.