---
title: "C# switch"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/127755-c-switch"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "The_Hulk"
published: "2005-05-06T11:05:33.000Z"
updated: "2005-05-06T13:52:33.000Z"
replies: 3
views: 847
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/127755-c-switch"
---

# C# switch

## #1 — The_Hulk, 2005-05-06T11:05Z

Går det inte att ha en static int i case-satsen?
Jag har en klass som innehåller en massa static int för att status på klassen.

nu vill jag kolla vilken status ett objekt har i en switch-sats

```
  class test
  {
    static int status_new = 1;
    static int status_old = 2;

    .
    .
    .
  }

 ...
  test o = new test();
  switch(o.status)
  {
    case test.status_new:
      ...
      break;

    case test.status_old:
      ...
      break;
  }
```

gör jag så här så får jag kompileringsfel. Felmeddelandet lyder: "Ett konstantvärde förväntas"

vet att det inte är helt korrekt kod men principen är iaf där.

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

## #2 — Phorpher, 2005-05-06T11:18Z

En staticdeklarerad klassvariabel är inte konstant. Static betyder att den "spänner över alla instanser av klassen". Använd **const** istället.

**Red;**
För att förtydliga keywordet "static". Nånting som är static tillhör klassen och inte en instans av klassen. Deklarerar du en variabel static i en klass och ändrar värdet på den i en instans av klassen så är den även ändrad i andra instanser av klassen just för att den tillhör typen och inte instanserna. ;)

Keywordet const används för att deklarera någonting som konstant och oföränderligt.

Det är inte bara variabler som kan vara const eller static utan även t.ex. metoder och klasser.

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

## #3 — The_Hulk, 2005-05-06T12:21Z

Bugar och tackar för utförligt svar.

men om en variael är const, kan man då komma åt den utan att behöva skapa ett objekt av klassen?

Eller ska man använda static och const tillsammans?

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

## #4 — Gladh, 2005-05-06T13:52Z

> Eller ska man använda static och const tillsammans?

Japp. Fast i dessa fallen så brukar man använda sig av Enumerations istället för att själv uppfinna hjulet återigen.

\- M

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/127755-c-switch
