Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Vb.net]L'espressione è un valore, quindi non può essere la destinazione di un'assegnazione.
Forum - C# / VB.NET - [Vb.net]L'espressione è un valore, quindi non può essere la destinazione di un'assegnazione.

Avatar
Astrog (Normal User)
Newbie


Messaggi: 11
Iscritto: 31/05/2010

Segnala al moderatore
Postato alle 23:12
Giovedì, 05/01/2012
Salve a tutti, sono alle prime prese con il mondo di programmazione in generale e ho provato a creare questo pezzo di codice che dovrebbe fare delle estrazioni casuali da dei nomi precedentemente inseriti ad esempio per un torneo

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  contatore = 0      
  3.       For ciclo = 0 To (UBound(Nomi) + 1)
  4.           numran = MyRnd.Next(UBound(Nomi) + 1)
  5.             For ciclo2 = 0 To contatore
  6.                 If numran = c(ciclo2) Then
  7.                     numran = MyRnd.Next(UBound(Nomi) + 1)
  8.                     ciclo2 = 0
  9.                 End If
  10.             Next
  11.             contatore = contatore + 1
  12.             c(contatore) = numran
  13.             numran2 = MyRnd.Next(UBound(Nomi) + 1)
  14.  
  15.             For ciclo2() = 0 To contatore
  16.                 If numran2 = c(ciclo2) Then
  17.                     numran2 = MyRnd.Next(UBound(Nomi) + 1)
  18.                     ciclo2 = 0
  19.                 End If
  20.             Next
  21.             contatore = contatore + 1
  22.             c(contatore) = numran2
  23.             ListBox1.Items.Add(Nomi(numran) & Space(6) & "vs" & Space(6) & Nomi(numran2))
  24.  
  25.         Next
  26.     End Sub



questo codice mi genera 2 errori:
-Il tipo della variabile 'ciclo' non verrà dedotto perché associato a un campo in un ambito di inclusione. Modificare il nome di 'ciclo' o utilizzare il nome completo, ad esempio 'Me.ciclo' o 'MyBase.ciclo'.    

-L'espressione(ciclo2) è un valore, quindi non può essere la destinazione di un'assegnazione
  quest'ultimo me lo da per tutte e 4 le volte che uso ciclo2 (integer)

sapete come posso risolvere? grazie




Ultima modifica effettuata da Astrog il 05/01/2012 alle 23:18


provando ad imparare
PM
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 23:37
Giovedì, 05/01/2012
prova a scrivere
For ciclo as Integer =0
In questo modo specifichi che tipo di variabile è ciclo.
Fai le dichiarazione di variabili per bene.
Rispetto al primo errore, il compilatore ti sta dicendo che da qualche altra parte nella tua classe c'è una variabile che si chiama ciclo e non sa quale prendere.
Per ciclo2 hai scritto ciclo2().. e non sembra funzionare. Anche qui. ciclo2 as integer =0

System.NullReferenceException non è stata gestita Message=Riferimento a un oggetto non impostato su un'istanza di oggetto. - Astrog - 05/01/12 23:41
funziona ma a desso mi da questo errore sulla riga 6... comunque ciclo2 l'avevo messo in un modulo come public ciclo2 as integer - Astrog - 05/01/12 23:46
Dov'è l'errore? Riga 6: If numran = c(ciclo2) Then ? Ma le variabili tu dove le dichiari? - Renny - 06/01/12 00:43
in un modulo, usando public nomevariabile as tipo - Astrog - 06/01/12 03:37
Non è proprio la pratica migliore. Le variabili che usi per la tua sub o funzione andrebbero dichiarate in locale, usate e poi il gc libera lo spazio. Il problema rimane? Forse è il caso che posti il resto del codice in un'altro thread. - Renny - 06/01/12 10:50
scusa, saresti così gentile da spiegarmi cosa è il gc e come dichiarare le variabili in locale? - Astrog - 06/01/12 14:54
Forse dovresti studiare qualche guida. Dichiarare le variabili in locale vuol dire mettere Dim Ciclo as integer all'interno della tua sub "button1_click". Il gc è il garbage collector, ma non devi fare niente, si arrangia il compilatore: le variabili non più mecessarie vengono rimosse dalla memoria - Renny - 06/01/12 15:08


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM