Gå til innhold

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


Anbefalte innlegg

Videoannonse
Annonse
Gjest Slettet+9871234

Ser ut som om .Show() krever en instanisert klasse for å kunne kalles. Metoden er ikke statisk og krever derfor en referanse/tilhørighet til et instansiert objekt.

 

Form2 form = new Form2();

form.Show(); // noe i den duren?

 

Du kan prøve Form2.Control.Show();

 

Jeg har ikke Visual Studio for hånden og får ikke testet. Har heller ikke jobbet mye med forms.

 

---

 

Litt på siden. Er det ikke mer logisk å ha kun en Form for hele applikasjonen, og flere popupbokser? Kommer vel an på type appliksjon I guess, men jeg tenker på ditt eksempel.

Endret av Slettet+9871234
Lenke til kommentar

Hva med dette? Virker mer som standard syntaks for en if enn den du har.... Nå skal det sies at jeg kun har erfaring fra C/C++ og PHP/JS, men allikevel er det vel verdt et forsøk?

 
if (i < 10){
 Form2.show(); 
}

 

Greit nok at det vanligvis skal holde uten {} når man kun har én linje, men det kan jo være en fordel å sikre seg at det ikke er der feilen ligger :)

Endret av Araho
Lenke til kommentar
Gjest Slettet+9871234

Hvis du skriver new Form2(), har du da opprettet en instans av en statisk klasse? (Som ikke skal være mulig?)

Jeg forstod ikke den syntaksen helt. C# har mange snarveier hehe.

Endret av Slettet+9871234
Lenke til kommentar
Gjest Slettet+9871234

"Dangling reference" er ukjent for meg. Det må jeg slå opp. Men hvordan kan du adressere eller referere en slik instanse når den ikke har navn? Er dette kun en syntaks man kan bruke i et slikt tilfelle, hvor man ikke behøver å referere et bestemt objekt?

Lenke til kommentar
Gjest Slettet+9871234

Så det kan være at .net rammeverket eller forms bibliotekene faktisk tilordner instansen til en variabel som er skjult? (Skal ikke mase mer nå, men det var litt interessant).

Lenke til kommentar

Når du skriver det slik:

(new Form2()).Show;

så lager den instansen og starter formen for deg men du vil ikke kunne få hentet ut noen informasjon fra formen. Hadde du derimot skrivd:

Form2 form = new Form2(); 
form.Show();

så ville du kunne hentet ut informasjon fra formen i etterkant om ønskelig.

Lenke til kommentar

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å
×
×
  • Opprett ny...