C# Kan ikke bruge variabler i andre dele af programmet

Tags:    c#

Hej Udviklere

Jeg er i gang med at udvikle et c# program til windows.

Jeg har i mit program.cs lavet nogle variabler, dem kan jeg ikke bruge i form.cs. Hvad gør jeg forkert?? - Jeg skal bruge dem til at blive minusset når man trykker på knappen.

Når jeg køre programmet siger den, at min int ikke eksistere.



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Der er noget omkring scope regler du mangler at sætte dig ind i eller bare ikke har forstået (som Ronny også er inde på).

Når du erklærer en variabel (fx int i) i en metode så er variablen kun synlig for metoden selv og hvis en anden metode skal se din variabel så skal den sendes med som en parameter.

En måde at omgås dette på er at erklære din variabel på klasseniveau og på denne måde kan alle metoder i samme klasse se din variabel. Men hvis en metode har en reference til et objekt af din klasse (og din variabel er makeret public) så kan du også få fat i din variabel selv fra en anden klasse.

Hvilket er det der er løsningen i dit tilfælde. Jeg har tilladt mig at omskrive dit program således jeg tror det virker som du ønsker det. Det kan dog gøres på mange måder alt efter hvem det i sidste ende er der skal eje din ”i” variabel.

Den absolut nemmeste måde (og mest horribel måde hvis man laver professionel programmering :P) er at gøre din ”i” variabel statisk således den kan tilgås af din Form1 klasse uden nogen reference (ikke noget problem når din Program klasse alligevel fungerer rent statisk):

form1.cs:
Fold kodeboks ind/udCSharp kode 


program.cs
Fold kodeboks ind/udCSharp kode 


Jeg synes ikke det er værd at komme med et bedre alternativ da det er tydeligt du kun lige er begyndt at lære C# og det er bedre du bare leger lidt med det i starten og herefter begynder at læse ordentligt op på hvordan din programstruktur skal laves korrekt. :)



bruges variablerne i functioner i de 2 filer ??
jeg tænker scope regler
hvordan overfører du variablerne ??

vi er nok nød til at se noget code




Tak fordi du gider at hjælpe :D

Her er koden.

form1.cs:
Fold kodeboks ind/udCSharp kode 


program.cs
Fold kodeboks ind/udCSharp kode 




Mange tak Jacob:D



t