---
title: "egenskap + konstruktor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/167069-egenskap-konstruktor"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "doggelito"
published: "2007-12-08T14:23:27.000Z"
updated: "2007-12-10T08:44:54.000Z"
replies: 5
views: 622
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/167069-egenskap-konstruktor"
---

# egenskap + konstruktor

## #1 — doggelito, 2007-12-08T14:23Z

Vilken är att föredra av dessa två och varför?

alt. 1

```
public class con
{
    private string _foo;
    public string Foo
    {
        get
        {
            if (_foo.Length == 0)
                return "bar";
            else
                return _foo;
        }
        set { _foo = value; }
    }
}
```

alt. 2

```
public class con
{
    private string _foo;
    public string Foo
    {
        get{ return _foo; }
        set { _foo = value; }
    }

    public con()
    {
        _foo = "bar";
    }
}
```

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

## #2 — CatZ, 2007-12-08T15:43Z

Om jag har förstått det hela rätt så är alternativ 2 "mera rätt" fast det beror väl på vad du ska använda det till.

Du ska ju redan ha sett till att det som skickas in i klassen är av rätt typ och har ett värde..

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

## #3 — Compusa, 2007-12-08T18:38Z

Alternativ 2.

När du deklararerar \_foo utan att tilldela ett värde så gör CLR:en följande åt dig (under the hood): private string \_foo; blir private string \_foo = "". Med andra ord så returneras en tom sträng när du skriver con.Foo och du inte tilldelat något värde till instansvariabeln.

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

## #4 — Lukaspojken, 2007-12-09T19:47Z

Varför inte göra så här istället?

```
public class con
{
    private string _foo = "bar";
    public string Foo
    {
        get{ return _foo; }
        set { _foo = value; }
    }
}
```

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

## #5 — Compusa, 2007-12-10T08:36Z

Helt rätt  (y) 

Kollade inte tillräckligt noggrant på koden.

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

## #6 — doggelito, 2007-12-10T08:44Z

> **Lukaspojken skrev:**
>
> Varför inte göra så här istället?

Ja, varför inte! Tanken slog mig aldrig! :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/167069-egenskap-konstruktor
