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};

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: Ryzen 7800X3D, 64GB DDR5, RTX 3070
Server: i7-8700k, 32GB DDR4, RTX2080
Steam deck + de fiesta konsoller.