---
title: "Använda publik eller privat property"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/172344-använda-publik-eller-privat-property"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "doggelito"
published: "2008-06-23T14:14:15.000Z"
updated: "2008-06-24T21:11:05.000Z"
replies: 6
views: 660
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/172344-använda-publik-eller-privat-property"
---

# Använda publik eller privat property

## #1 — doggelito, 2008-06-23T14:14Z

En liten rookiefråga så här på eftermiddagen!  :stud 
Ska man använda den privata eller publika propertyn i sin kod? 

```
private string blabla = "hejhej";
public string Blabla
{
     get { return blabla; }
     set { blabla = value; }
}

protected void Page_Load(object sender, EventArgs e)
{
     if(blabla.Equals("hejhej"))...

     if(Blabla.Equals("hejhej"))...
}
```

Permalänk: https://www.webforum.nu/p/172344

## #2 — spango, 2008-06-23T14:35Z

Normalt brukar man rekommendera att man använder propertyn och inte fältet bakom, i ditt fall alltså "Blabla" och inte "blabla". Har man någon form av valideringskod i settern vill man inte av misstag sätta den till något trasigt värde (det kan bli marginellt långsammare, men om JITen är lite smart borde triviala get/set-metoder inlinas). I C# 3 finns det ju till och med stöd för att slippa ange det bakomliggande fältet:

```
public string Blabla { get; set; }
```

Gör man på det viset behöver man inte fundera över vad man ska använda :)

**red.** Klargörande av terminologi: I ditt fall är "blabla" ett fält och "Blabla" är en property. En property har egentligen inget eget värde, utan är ett standardiserat sätt att ange metoder som hämtar och/eller sätter värden (antingen direkt på fält eller på andra properties). I ditt fall blir propertyn Blabla två metoder:

```
public string get_Blabla  { return blabla; }
public void set_Blabla(string value) { blabla = value; }
```

Permalänk: https://www.webforum.nu/p/2119612

## #3 — doggelito, 2008-06-23T20:03Z

Många tack spango! Då har jag lite bättre koll på läget! :)

Permalänk: https://www.webforum.nu/p/2119687

## #4 — CatZ, 2008-06-24T09:45Z

Mycket bra förklaring, jag ska genast ta bort alla mina privata fält :)

Permalänk: https://www.webforum.nu/p/2119757

## #5 — doggelito, 2008-06-24T14:02Z

Ta inte bort dem som du satt defaultvärden på bara! Om du använder sådana.   :bire

Permalänk: https://www.webforum.nu/p/2119794

## #6 — CatZ, 2008-06-24T20:52Z

Nej då, jag brukar skilja på dom med 

```
#region
```

 men tack för påminnelsen! :birp

Permalänk: https://www.webforum.nu/p/2119884

## #7 — Nickemannen, 2008-06-24T21:11Z

Jag vet inte om jag gillar "auto-properties", i många fall vill man ändå ha funktionalitet i propertyn som t.ex. ett OnPropertyChanged("Name") anrop, lazyloading funktionalitet och lite annat smått och gått. Och om man då blir sittandes med några auto-properties och några vanliga properties så blir det inte konsekvent och sådant tycker jag inte är så bra.

Har man saker grupperat så tycker jag inte det gör så mycket med de vanliga properties som finns.

Permalänk: https://www.webforum.nu/p/2119891

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/172344-använda-publik-eller-privat-property
