Fråga getters och setters i C#

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008

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?

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 || Acer Predator XB271HU || Windows 10

Trädvy Permalänk
Medlem
Registrerad
Dec 2011

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#?

Trädvy Permalänk
Medlem
Plats
Hässleholm
Registrerad
Jan 2008
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!

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 || Acer Predator XB271HU || Windows 10