KydeX Skrevet 14. mai 2012 Del Skrevet 14. mai 2012 Hei. Jeg holder på med et program som skrives i Visual Basic .NET. Jeg er helt nybegynner på område. Jeg har en if setning som inneholder en hel haug if-elseif-else. En av dem kan f.eks. se slik ut: If (A.value = true and B.value <> 0 and C <> 225) then Status.value = 225 Dette er et eksempel, jeg har ikke her tatt med ifelse setningene osv. Spørsmålet mitt er så: Jeg ønsker at når if betingelsene ikke er true lenger så vil jeg sette verdien til en annen variabel. Altså idet betingelsene går fra true til false. Jeg kan ikke bare bruke "else", fordi variabelen jeg skal bruke kan bli overskrevet av andre kodelinjer i programmet. Eventuelle tips settes pris på. Lenke til kommentar
BlueEAGLE Skrevet 14. mai 2012 Del Skrevet 14. mai 2012 Hei Azaz og velkommen til .net. Det første jeg ville stille spørsmål ved var bruk av integere for å angi statuser. Her er kanskje en dictionary et bedre verktøy? Når det gjelder if-else-spørsmålet ditt så vil jeg også gå litt inn på programmeringsfilosofier i .net. En variabel tilhører et objekt eller en funksjon. Derfor bør ikke tilfeller som at "variabelen jeg skal bruke kan bli overskrevet av andre kodelinjer" forekomme. (Les: Ikke bruk globale variabler). Generelt sett så vil du ha if-setninger av typen: IF (Condition1) function1(parameters) ELSE IF (Condition2) funciton2(parameters) ELSE function3(parameters) Det skal ikke være tid for at noen verdier kan endres i løpet av behandlingen av en if-kodeblokk så det at andre programlinjer kan overskrive variabelen skal ikke være en reell problemstilling. Det du trenger å gjøre er å behandle if-kodeblokken hver gang A, B eller C-variablene endres. Håper det hjelper litt. Lenke til kommentar
GeirGrusom Skrevet 14. mai 2012 Del Skrevet 14. mai 2012 Du må ha kontroll på hvordan koden din endrer uttrykket, ellers vil ikke koden din være deterministisk som vil skape et hav av problemer. Som regel vil du aldri gjenbruke variabler (unntak finnes for teller) fordi det har ingen hensikt. Det er gratis å opprette variabler. Lenke til kommentar
KydeX Skrevet 14. mai 2012 Forfatter Del Skrevet 14. mai 2012 Årsaken til at jeg ikke har brukt Dictionary er vel også at jeg er helt fersk i dette. I tillegg så er det egentlig et ganske kort, simpelt program som jeg prøver å gjøre det jeg trenger så enkelt som mulig. Jeg skal teste litt med å bare utvide if-setningen og se om det fungerer, hvis ikke får jeg komme med mer konkret eksempel på strukturen min Takker for foreløpig hjelp. Ikke umulig at jeg kommer med noen oppfølgerspørsmål. Lenke til kommentar
KydeX Skrevet 14. mai 2012 Forfatter Del Skrevet 14. mai 2012 Du må ha kontroll på hvordan koden din endrer uttrykket, ellers vil ikke koden din være deterministisk som vil skape et hav av problemer. Som regel vil du aldri gjenbruke variabler (unntak finnes for teller) fordi det har ingen hensikt. Det er gratis å opprette variabler. Årsaken til gjenbruk av variabler er at programmet henter inn flere input variabler fra en databaseserver (ikke SQL). Basert på disse skal jeg detektere og registrere forskjellige statuser som skrives ut til en output tag som går tilbake til databasen. Disse må ha spesifikke nummer. I tillegg skal det brukes til å detektere start og stopp tider. Derfor trenger jeg å vite når betingelsene opphører slik at jeg kan skrive ny status til en statusvariabel nr 2 som også blir skrevet inn til databasen igjen. Kanskje litt rotete forklart.. Lenke til kommentar
Spenzer Skrevet 2. november 2012 Del Skrevet 2. november 2012 (endret) Spørsmålet mitt er så: Jeg ønsker at når if betingelsene ikke er true lenger så vil jeg sette verdien til en annen variabel. Altså idet betingelsene går fra true til false. Jeg kan ikke bare bruke "else", fordi variabelen jeg skal bruke kan bli overskrevet av andre kodelinjer i programmet. Om jeg ikke misforstod deg så ønsker du å utføre handlinger frem til en condition ikke er true lengre. Et eksempel: Dim minVariabel As Boolean = False Do While minVariabel = False ' Her looper du hva som skal skje mens variabelen er false ' ' Eksempel: For i As Integer = 0 To 10 If i = 8 Then minVariabel = True End If Next Loop ' Her er variabel true If minVariabel = True Then MsgBox("Tallet var 8, så vi satte minVariabel til True") End If Du kan også endre linje 2 til: Do Until minVariabel = True Endret 2. november 2012 av Spenzer Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå