Heipodei!
Latasin tänään ensimmäistä kertaa ilmaisen Visual Studio 2008 Expressin ja olen
päässyt sillä leikkiessä jo melko hyvin vauhtiin ehtolauseiden yms. kanssa, mutta
en ole vielä onnistunut luomaan muuttujaa.
Luodessani uuden projektin ja yrittäessäni määrittää muuttujaa seuraavasti, valittaa ohjelma virhettä "declaration expected" rivillä 3.
Public Class Form1 Dim testi As String testi = "testilause" End Class
Mikä siis mättää?
Sijoituslauseet ja muu toiminnallinen koodi pitää kirjoittaa funktioiden (metodien) sisään. Muuttujan alkuarvon voit kuitenkin antaa jo määrittelyrivillä:
Dim testi As String = "teksti"
Kiitoksia avusta ;)
Taas ilmeni uusi ongelma jota olen yrittänyt ratkoa tänään tuloksetta.
Käytössäni on siis seuraavanlainen koodi:
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim testi As String testi = "merkkijono" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox(testi) End Sub End Class
Miksi en voi käyttää MsgBox funktiossa jo aiemmin määriteltyä muuttujaa testi?
Yrittäessä suorittaa ohjelmaa tulee virheilmoitus "name 'testi' is not declared".
Tuossa muuttuja määritellään funktion sisällä, joten se näkyy vain kyseisessä funktiossa ja tuhoutuu funktion lopussa. Sen data ei myöskään säily funktion eri kutsukerroilla. Useammassa funktiossa käytettävä muuttuja pitää määritellä luokan jäsenenä funktioiden ulkopuolella.
Kiitos jälleen kerran selvennyksestä, nyt alaa pikkuhiljaa painumaan nuo visual basicin perusteet päähän :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.