Permalänk
Medlem

Fråga getters och setters i C#

Jag har fått lära mig att man sätter t.ex. en variabel private så här:

private int tal;

Sedan en egenskap med stor bokstav för indirekt åtkomst.

public string Tal { get { return tal; } set { tal = value; } }

Sedan har jag sett att man gör så här:

public int tal { get; set; }

Då blir det ju inte indirekt åtkomst utan direkt. Hur fungerar det? Eller fungerar det bara om det är public?

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10

Permalänk
Medlem

Det kallas auto-properties (eller Auto-Implemented Properties) och är helt enkelt ett snabbare sätt att skriva samma sak du skrev ovan. Att skriva

public int Tal { get; set; }

kommer alltså automatiskt generera en privat variabel som håller själva värdet man sparar i Tal.

MSDN: Auto-Implemented Properties
Stackoverflow: What is the { get; set; } syntax in C#?

Permalänk
Medlem
Skrivet av cfj:

Det kallas auto-properties (eller Auto-Implemented Properties) och är helt enkelt ett snabbare sätt att skriva samma sak du skrev ovan. Att skriva

public int Tal { get; set; }

kommer alltså automatiskt generera en privat variabel som håller själva värdet man sparar i Tal.

MSDN: Auto-Implemented Properties
Stackoverflow: What is the { get; set; } syntax in C#?

Aha, ok. Tackar!

Visa signatur

Chassi: Fractal Design Define C || Processor: Intel i7-8700K || Grafikkort: ASUS GeForce GTX 1080Ti ROG Strix Gaming || Moderkort: Gigabyte Z370 AORUS ULTRA WIFI || Minne: Corsair Vengeance LPX DDR4 3000MHz 32 Gb || Lagring: Samsung 860 EVO 1TB SSD || PSU: Seasonic Focus+ 850W 85+ GOLD PSU || Skärm:Samsung Odyssey G9 || Windows 10