Permalänk

c# setter och getter

Hej,
Jag håller på med att bygga ett litet texbaserat spel i c#.

Jag har en klass:

class spelplan { private int storlek; public int Storlek { get { return storlek; } set { storlek = value; } } }

sen så gör jag (i main):

spelplan spel = new spelplan();

Men hur ger jag storlek ett värde. Hur jag än gör får jag något fel.

Visa signatur

6600K@4,5GHz 1,25V | EVGA 980Ti | Samsung 950 Pro m.2

Permalänk

När du inte gör något med variabeln när du settar / gettar den är det enklare att skriva (kompileras till samma sak):

class Spelplan { public int Storlek {get; set;} }

Och sen bara setta den med:

Spelplan plan = new Spelplan(); plan.Storlek = 10;

Antar att det du gjorde fel var att du försökte setta den privata variabeln och inte den publika. Dvs, du använde små bokstäver när du satte variabelns värde? Du måste anropa den publika "Storlek" och inte "storlek". C# är skiftlägeskänsligt

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Skrivet av KurreKula:

När du inte gör något med variabeln när du settar / gettar den är det enklare att skriva (kompileras till samma sak):

class Spelplan { public int Storlek {get; set;} }

Och sen bara setta den med:

Spelplan plan = new Spelplan(); plan.Storlek = 10;

Antar att det du gjorde fel var att du försökte setta den privata variabeln och inte den publika. Dvs, du använde små bokstäver när du satte variabelns värde? Du måste anropa den publika "Storlek" och inte "storlek". C# är skiftlägeskänsligt

Okej, tack! Jag får helt enkelt vara mer noga.

Visa signatur

6600K@4,5GHz 1,25V | EVGA 980Ti | Samsung 950 Pro m.2

Permalänk
Medlem

Om du ska sätta storleken direkt när du skapar upp Spelplanen kan du köra

Spelplan plan = new Spelplan{Storlek=10};

Visa signatur

AK47s for everyone! - Angry mob
Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN' - Miguel Mitrofanov
(Varför är människan så benägen att tro på Gud?) Antagligen har det lönat sig och evolutionen har drivit fram sådana hjärnor. - Anon

Permalänk
Medlem
Skrivet av vb:

Om du ska sätta storleken direkt när du skapar upp Spelplanen kan du köra

Spelplan plan = new Spelplan{Storlek=10};

Jag skulle nog också göra så här, om inte annat använda en parameter till konstruktorn. Vad händer om du gör en spelplan som inte har någon storlek? Kommer du få null-pointer exception om du kör metoder inom objektet?

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem
Skrivet av KeVVa:

Jag skulle nog också göra så här, om inte annat använda en parameter till konstruktorn. Vad händer om du gör en spelplan som inte har någon storlek? Kommer du få null-pointer exception om du kör metoder inom objektet?

Beror på vilken typ av data du sparar, en int som i dessa fall ovanför kommer default vara 0, andra objekt kan vara null till tja vad det du nu sparar det som.

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift