Arry di strutture

giovedì 16 marzo 2006 - 15.00

maurik Profilo | Junior Member

Ciao a tutti ho una domanda/ problema vorrei sapere se è possibile in VB.net creare un array di strutture...

es: Dim arrstructure as Camerastructure

dove camerstructure è creata cosi:

Structure camerastructure

Dim blnqualcosa as boolean
Dim strqualcsa as string

End structure

E' possibile tutto ciò ????
se si è giusto così????

ciao e grazie Maurizio

Brainkiller Profilo | Guru

>Ciao a tutti ho una domanda/ problema vorrei sapere se è possibile
>in VB.net creare un array di strutture...
>es: Dim arrstructure as Camerastructure

Ciao Maurik,
finalmente .NET (VB.NET e C#) sono linguaggi orientati agli oggetti (OOP) quindi ti consiglierei invece di usare strutture, di utilizzare direttamente classi. Con metodi, proprietà, ecc. La classe una volta istanziata forma un oggetto. Un array può essere riempito di oggetti.

In ogni caso le struct restano per un uso su oggetti light come Point, Color, ecc.

using System; public struct Point { public int x, y; public Point(int p1, int p2) { x = p1; y = p2; } }

La keyword struct però è presente solo in C#.

Ciao



David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

maurik Profilo | Junior Member

grazie ora provvederò ad utilizzare le classi....


Ciao Maurik

Ciamiz Profilo | Newbie

Ciao, comunque la possibilità di utilizzare array di strutture esiste, basta dichiarare l'array con come tipo, la struttura. Es:

Public Structure Persona
Dim Nome As String
Dim Cognome As String
End Structure

Dim arrayDiPersone() As Persona

Ciao!
Ciamiz

maurik Profilo | Junior Member

Ho risolto grazie sei stato veramente gentile

Ciao maurik

kiwi Profilo | Newbie

Scusate, ma io sto tentando di fare la stessa cosa all'interno di una web service solo che mi da questo errore:

System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.
in SERVS1ClassAccess.SERVS1(String ist)

Ho fatto una funzione in questa web service che come valore di ritorno (Return) mi deve dare i dati estratti dal DB strutturati come la Public Structure chiamata SERVS1Result (l'ho inserita più giù) e questo me lo fa ma siccome istanziavo la public structure una volta sola il ciclo while mi valorizzava sempre la stessa e come risultato ottenevo solo l'ultima estrazione!
Ho tentato di mettere un Array di strutture (il codice con il segno <----//) ma mi da l'errore....???

Vi incollo il codice deve essere un problema di dichiarazione non so.... Aiutatemiiiii!

Public Com() As Object '<----------------------------------------///

[.....altro codice che non serve....]

If Not risolvi = "" Then
objConn.Open()


Dim pc As String
Dim i As Integer = 0
Dim x As Integer = 0
Dim c As Integer
Dim objCmd2 As New OleDbCommand("Stringa di connessione", objConn)
Dim objReader2 As OleDbDataReader
objReader2 = objCmd2.ExecuteReader

While objReader2.Read
pc = (objReader2.GetString(9))
If pc = "Y" Then
i = i + 1

Com(i) = New SERVS1Result '<-----------------------------------///

Com(i).Comm.Nome = objReader2.GetString(2) 'Sede
Com(i).Comm.Indirizzo = objReader2.GetString(4) 'indirizzo
Com(i).Comm.telefono = objReader2.GetString(5) 'telefono
Com(i).Comm.Email = objReader2.GetString(8) 'email
Com(i).Comm.Cap = CapCom
Com(i).Comm.Comune = Comune
Com(i).Comm.SiglaProvincia = Provincia


End If

End While

objConn.Close()
objConn.Dispose()

Com(i).NumeroComm = i '<------------------------------------------///


For c = 0 To Com.Length '<-------------------------------///
Return Com(c) '<-----------------------------///
Next


End If


End Function


La struttura inizia qui ed è così:

Public Structure SERVS1Result
Public NumeroComm As Integer
Public Comm As SComm

Public Structure SComm
Public Nome As String
Public Indirizzo As String
Public Cap As String
Public Comune As String
Public SiglaProvincia As String
Public Email As String
Public telefono As String
End Structure
End Structure
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