Hejsa
Mange tak for de gode og instruktive tutorials du har lavet om c#. Du kommer godt omkring emnet på en let forståelig måde.
Men foreløbig er der en ting der forvirrer mig: I tutorial 17 om instansvariabler vælger du at lave både en instansvariabel og en lokal variabel med navn 'gas'. Herefter bruger du this.gas = gas for at tildele den lokale variabel den samme værdi som i instansvariablen. Hvorfor ikke kalde lokalvariablen 'gas2' og så sige gas2 = gas ?
Du siger i tutorialen at det er normalt at bruge samme navn, men hvorfor ? Jeg synes det bidrager mere til forvirring, når man er ved at lære sproget
Hilsen Bauder
Hvorfor lave instansvariabel og 'lokal'variabel med samme navn ?
Re: Hvorfor lave instansvariabel og 'lokal'variabel med samme navn ?
Jeg kan godt følge dig, men jeg tror faktisk det er et forsøg på at give dig lidt ekstra info, nemlig at du altid kan referere til 'den klasse du er inde i' med keywordet this.
Der er massere af standarder for navngivning af variable, og jeg mener at det er mest anvendt at skrive lokale-variable med en underscore:
Så kan du, som du selv nævner, kalde din parameter "gas" og skrive _gas = gas; eller this._gas = gas.
Det er rigtig godt at lære getters/setters og når du føler du har styr på det, kan du gå over til det der kaldes "Properties" i C# (jeg ved ikke om kurset kommer ind på dem).
Der er massere af standarder for navngivning af variable, og jeg mener at det er mest anvendt at skrive lokale-variable med en underscore:
Kode: Vælg alt
private double _gas;
Det er rigtig godt at lære getters/setters og når du føler du har styr på det, kan du gå over til det der kaldes "Properties" i C# (jeg ved ikke om kurset kommer ind på dem).
Re: Hvorfor lave instansvariabel og 'lokal'variabel med samme navn ?
Så vidt jeg ved er der ikke noget teknisk at vinde ved denne fremgangsmåde, din kode eksekveres ikke hurtigere eller noget i den dur.I tutorial 17 om instansvariabler vælger du at lave både en instansvariabel og en lokal variabel med navn 'gas'. Herefter bruger du this.gas = gas for at tildele den lokale variabel den samme værdi som i instansvariablen. Hvorfor ikke kalde lokalvariablen 'gas2' og så sige gas2 = gas?
Når du f.eks skriver
Kode: Vælg alt
//lokal variable
private int a = 0;
//konstruktør
public test (int a) {
this.a = a;
}
Så "a" inde i vores konstruktør, er ikke den samme som "a" udenfor vores konstruktør.
De referer ikke til hinanden, men er to selvstændige enheder
For at besvare følgende spørgsmål
Vill jeg give følgende svarHvorfor ikke kalde lokalvariablen 'gas2' og så sige gas2 = gas?
Man gør det på denne måde fordi instans variablen "a" og konstruktørens variable "a" bliver tildelt den samme værdi,
og derved giver det mere mening at kalde variablerne det samme end at skelne imellem dem. Da f.eks "gas" og "gas1",
ligger op til at de skal indeholde forskellige værdier.