Gå til innhold

C#: Helt fersk i C#, trenger hjelp og forklaring på feil


Anbefalte innlegg

Skrevet

Heihei. Dere kommer neppe til få noen utfordring på dette her, men jeg lurer på hvorfor jeg får følgende feil og hva som er løsningen.

 

Det som skjer er at Form2 skal vise seg så snart "i" (integer) blir 20. Problemet er at Visual C# 2008 begynner å klage om at void plutselig ikke er gyldig lenger og masse annet tullball som ikke gir noen mening.

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Moro
{
   public partial class Form1 : Form
   {
       int i = 0;
       public Form1()
       {
           InitializeComponent();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           i++;
           MessageBox.Show("Hello World!", "Greeting"); 
           label1.Text = ("Denne knappen har blitt presset " + i + " ganger");
           progressBar1.Value = i;
       }

   { if (i);
       = 10

       Then
           Form2.show();

   }
       private void label1_Click(object sender, EventArgs e)
       {

       }

       private void Form1_Load(object sender, EventArgs e)
       {

       }

       private void progressBar1_Click(object sender, EventArgs e)
       {

       }
   }
}

lololo.JPG

Videoannonse
Annonse
Skrevet (endret)

Hvorfor lagrer du ikke som PNG? Slike JPG bilder er vonde å lese pga komprimeringa.

 

Få med skjermbilde av feilmeldinga også.

Endret av geir__hk
Skrevet (endret)

Hm, nå fikk jeg lyst til å ta opp igjen C#-programmeringen min..

 

Er du sikker på at du ikke har slurvet litt i koden din? F.eks.; følgende virket ihvertfall for meg noe merkelig:

(...)

} if (i); = 10 

(...)

Endret av greygenic
Skrevet

Feilen eg ser er at den if-setningen ligger utanfor metoden.

Dermed vil det ikkje kompilere sidan det ein sjekker på ligger utanfor scopet til metoden.

 

void metodenavn()

{

del av kode

 

}

if()

 

void metodenavn2()

{

}

Skrevet (endret)

Grey: Det er helt sikkert i den linjen feilen ligger.

 

 

Takk Jankee, skal prøve det.

 

Edit:

 

Feilen ligger i denne snutten:

 

    { if (i);
       = 10

       Then
           Form2.show();
"Her skulle det vært en "}""

 

Med en gang jeg sette på en "}" så feiler Private void-kommandoene til de andre objektene.

dsadsd.PNG

Endret av Gavekort
Skrevet

Du har eit sett med {} for mykje

 

I tillegg meiner eg det er syntaxfeil på ifsetningen

 

if(i); er feil etter kva eg husker på c#

 

Meir rett er:

Metodenavn()

{ //all kode som skal ligge i metoden

 

if(i>10) {

kode som skal utføres viss i er mindre enn 10

}

}//avslutning av metoden

Skrevet

Hvordan ser dette ut da?

       {

           i++;
           MessageBox.Show("Hello World!", "Greeting"); 
           label1.Text = ("Denne knappen har blitt presset " + i + " ganger");
           progressBar1.Value = i;


           if (i < 10)

               Form2.show();                                                      

      }

Skrevet

No har eg ikkje VS tilgjengeleg og har heller ikkje nko C#-plugin for eclipse inne så eg får ikkje heilt vurdert om koden skal fungere no, så det blir javakunnskapene mine som gjer peikepinnen om det skal gå eller ikkje.

 

 

men nokre småpunkt har eg:

Variableme som du tilordner verdier inne i denne metoden, kvar er desse initialisert?

og If-setningen skal den vises opp til 10 visninger eller etter 10 visninger?

Slik du hadde skrive det såg det mest ut som du ville ha det vist når i var lik 10.

Skrevet

Jeg gikk for din kode og fikk fjernet de fleste problemene.

 

Nå sliter jeg derimot med at Form2.Show() ikke fungerer... Er det mine VB 6.0 kunnskaper som krasjer med C# her eller er det rett syntax?

 

Beklager at jeg gjør det vanskelig for dere, men jeg har nettopp startet med C# og har ikke helt oversikten i det enda. :)

GAFFGAFF.PNG

Skrevet

As you wish!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Moro
{
   public partial class Form1 : Form
   {
       int i = 0;

       public Form1()
       {
           InitializeComponent();
       }



       private void button1_Click(object sender, EventArgs e)

       {

           i++;
           MessageBox.Show("Hello World!", "Greeting"); 
           label1.Text = ("Denne knappen har blitt presset " + i + " ganger");
           progressBar1.Value = i;


           if (i < 10)

               Form2.Show(); 

       }






       private void label1_Click(object sender, EventArgs e)
       {

       }

       private void Form1_Load(object sender, EventArgs e)
       {

       }

       private void progressBar1_Click(object sender, EventArgs e)
       {

       }
   }
}

Skrevet (endret)

All kunnskap jeg har om C# er såkalt "glemt kunnskap", derfor skal jeg ikke bastant påstå noe, jeg tenker bare høyt:

 

Istedet for følgende:

Form2.show();

Kunne du ha prøvd med:

Form1.show();

?

 

Bare for å prøve noe.

Endret av greygenic

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...