Det begynder så småt at give mening :-) 1000 tak.
Jeg har normalt let ved det boglige og tekniske, men jeg kan mærke, at man ved programmering i c# nok lige skal nå et "aha" punkt :-)
Har sgu lidt svært ved at se helhedsbilledet indtil nu...
ved "private double calcPh(double vand, double syre):
- er calcPh vel bare navnet på metoden? Eller skal jeg forstå det på den måde, at jeg laver en "private double" ved navn "calcPh", og i den nedenstående metode udregner værdien? Og i så fald, hvorfor returnerer jeg så "ph", og ikke "calcPh"?
- jeg går ud fra, at (double vand, double syre) betyder, at jeg laver de 2 doubler dér, så jeg kan bruge dem i metoden? Eller har jeg allerede oprettet dem et andet sted?
Mvh
dum til c#
Hejsa Jan
Vi kan ikke alle være eksperter og er ingen skam at spørge når man ikke forstår noget. Nok nærmere det modsatte for det viser du gerne vil lære (uanset hvor dumt du kan føle det er).
Jeg tog udgangspunkt i dit eksempel hvor du havde lavet dine variable ph og strPh så dem brugte jeg.
Desuden så hvis du ikke definerer om de skal være private eller public så bliver de protected som er at de er synlige indenfor din application scope, men er generelt altid god praksis at definere dette eksplicit.
Så hvis du ønsker de skal være protected så skriv det, ellers fortæl hvis de skal være private eller public.
Opbygningen er som følger:
"
private double calcPh(double vand, double syre)"
private : Dette definerer hvem der har adgang til denne metode. Altså om de kun kan ses her eller hvis du havde lavet den public så ville andre objekter også kunne se dem. I denne context kan det være svært at forstå, men lad mig give dig et eksempel.
Du laver en klasse der hedder menneske.
Den har variablen alder, og en public metode der hedder Voks() som får dit menneske til at blive et år ældre.
Når man bliver et år ældre så sker der en masse forskelligt igennem livet, fx når man bliver teenager får man bumser.
Derfor ville du fx lave en private metode TidTilBumser(int alder) som returnerer bool. Hvis man er over 13 så får man bumser i denne klasse.
Denne metode kalder man fra Voks() og kan reagere hvis man får true tilbage og sætte en anden variabel der siger antalBumser og tælle dem op med et tilfældigt tal.
Forskellen i dine to metoder er at Voks() er public, og din TidTilBumser(int alder) er private.
Det vil sige din TidTilBumser-metode kan kaldes fra din klasse af, men hvis andre udefra kalder dit menneske så kan de ikke se den.
Så hvis du har en anden klasse der laver dit menneske så kan de kun kalde dine public metoder på dit menneske, og indeni dit menneske kan de så selv kalde dine private metoder.
Gav det mening?
double : Dette er din returtype. Her fortæller du at du vil returnere en værdi af typen double (kommatal) - som kunne være en int (heltal) eller en metode der udfører noget uden absolut at returnere noget har void som returtype (ingen returtype).
Dette kan du også se ved fx din button_click fordi den skal udføre noget men ikke returnere noget tilbage til nogen.
calcPh : Dette er dit metodenavn. Den kunne hedde hvad som helst så længe du ikke har mellemrum i det. Praksis for navngivningen kan vi komme ind på en hel religionskrig herinde nok omkring hvornår begynder den med Stort begyndelsesbogstav, hvornår begynder den med småt begyndelsesbogstav, skal der indgå noget type i det også, og så videre.
(double vand, double syre) : Dette er dit input til din metode.
Det samme kan du se er i din button_click, men som frameworket hjælper dig med så du ikke skal lave så meget.
Du kan sætte typer og dine egne objekter eller ingenting som her "()".
Grunden til du returnerer "ph" og ikke "calcPh" er at du havde lavet en variabel kaldet ph (din double) for din metode skal ikke returnere sig selv men en værdi du har sat.
Du kunne sagtens bare returnere det rene regnestykke, men nu du havde en variabel du kunne sætte det i brugte jeg den bare.
Dine (double vand, double syre) er jo værdierne fra dine tekstbokse. Her skal du bare tage convert.ToDouble(txtSyre.text) og convert.ToDouble(txtVand.text) og få værdierne her og indsætte som parametre i din metode.
Hvis du ser efter så hver gang du ændrer teksten i dine tekstbokse så indsætter du en double-værdi i dine variable vand og syre, så dem kunne du bruge som input til din metode.
Indlæg senest redigeret d. 07.11.2012 20:26 af Bruger #17215