Avatar billede webdesigner Praktikant
12. november 2007 - 23:39 Der er 13 kommentarer og
1 løsning

Return fra Class til form

HEj jeg er ved at lave et ternbing kast igennem en class i program.cs til main form i c#

Program.cs
    public class Dice
    {
        public int result;
        public void dice()
        {
            Random r = new Random();
            result = r.Next(0, 4);
        }
        public void dice(int sides)
        {
            Random r = new Random();
            result = r.Next(0, sides);
        }

    }

Form.cs

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Dice dice = new Dice();
           
            Diceoutput.Text = her er den hentede variabel...
        }
    }

Hvordan får jeg den til at udskrive talet til formen??
Avatar billede arne_v Ekspert
12. november 2007 - 23:42 #1
Diceoutput.Text = dice.result.ToString();
Avatar billede arne_v Ekspert
12. november 2007 - 23:43 #2
public void dice()
        {
            Random r = new Random();
            result = r.Next(0, 4);
        }
        public void dice(int sides)
        {
            Random r = new Random();
            result = r.Next(0, sides);
        }

bør laves som:

        private static Random r = new Random();
        public void dice()
        {
            result = r.Next(0, 4);
        }
        public void dice(int sides)
        {
            result = r.Next(0, sides);
        }
Avatar billede webdesigner Praktikant
12. november 2007 - 23:43 #3
optimering mega nice... takker :) smid et svar
Avatar billede arne_v Ekspert
12. november 2007 - 23:44 #4
eller nok endnu bedre:

        private static Random r = new Random();
        public int ThrowDice(int sides)
        {
            return r.Next(0, sides);
        }
Avatar billede arne_v Ekspert
12. november 2007 - 23:44 #5
og:

Diceoutput.Text = dice.ThrowDice(6).ToString();
Avatar billede arne_v Ekspert
12. november 2007 - 23:44 #6
svar
Avatar billede webdesigner Praktikant
12. november 2007 - 23:45 #7
formen fejler den skriver :

Error    1    The name 'result' does not exist in the current context    C:\Documents and Settings\XXXX\Dokumenter\Visual Studio 2005\Projects\ADandD\ADandD\Program.cs    25    13    ADandD
Avatar billede webdesigner Praktikant
12. november 2007 - 23:47 #8
og variablen ersult findes ikke sakl jeg sætte den ind i en variabel i toppen af klassen ?
Avatar billede webdesigner Praktikant
12. november 2007 - 23:50 #9
kunne du lave et eksempen og smide en mail til kim ADD kakashi DOT dk
Avatar billede arne_v Ekspert
13. november 2007 - 04:11 #10
Den havde du da i toppen af Dice klasse ???

Prøv lige og post de 2 klasser som de ser ud nu.
Avatar billede bvli Praktikant
13. november 2007 - 08:32 #11
Mon det er en standardopgave i en eller anden uddannelse? :)

http://groups.google.com/group/dk.edb.programmering.dotnet/msg/986f52164b8cb238

/B :)
Avatar billede webdesigner Praktikant
13. november 2007 - 09:36 #12
må desværre skuffe dig Bvli jeg er ikke på den uddannelse..

men er nok en standart opgave ting :) men er veda at lave en AD&D system til rolle spiles aftner
Avatar billede nielle Nybegynder
13. november 2007 - 16:48 #13
Nej, de to stumper kode har intet med hinanden ud over at de begge handler om at slå med en terning og at ordet Dice derfor optræder i begge. (Men ja terninge-kodeeksempler er der jo masse af i de forskellige programerings uddanneler.)

webdesigner, jeg vil nu råde dig til at flytte din Random-instans ud til at være en static variabel i selve Dice-klassen i stedet for at oprette den inde i dice() metoden. Hvis du ikke gør det, vil du opleve nogle "sjove" fænomener når du forsøger at kaste flere terninger (d4'er i det vise kode eksempel) direkte i træk af hinanden.
Avatar billede bvli Praktikant
13. november 2007 - 19:13 #14
Jeg vil nu mene, at de to stykker kode bestemt har noget med hinanden at gøre! Trådstarter vil gerne have værdien fra sin terning ud i sin form. Det link der refereres til angiver en af de bedste måder at separere logik fra præsentation.

Et par ekstra linier kode, og det vil være muligt, at bind'e værdien fra terningen til en eller anden custom control.

Men det er sandt, at random-instansen bør være static - ikke kun på grund af optimering, men i høj grad også fordi slagene faktisk ikke vil blive "rigtig" random.

/B :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester