Avatar billede kennedk Nybegynder
12. september 2007 - 17:19 Der er 12 kommentarer og
1 løsning

Switch case, meget simpel

hej jeg sidder og roder med en switch case.
Den skriver at der er en lille fejl:
Ikke-tildelt lokal variabel, 'strDagNavn', blev anvendt

min kode
public partial class Switch_switch1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string strDagNavn;
        switch (DateTime.Now.DayOfWeek)
        {
            case DayOfWeek.Wednesday:
                strDagNavn = "Onsdag";
                break;
            case DayOfWeek.Thursday:
                strDagNavn = "Torsdag";
                break;
        }
        Label1.Text = strDagNavn;
    }
}

Hvordan dælen kan det være at den brokker sig?
Avatar billede arne_v Ekspert
12. september 2007 - 17:21 #1
Fordi hvis det ikke er onsdag eller torsdag har den ingen vaerdi.
Avatar billede arne_v Ekspert
12. september 2007 - 17:21 #2
Enten initialiser den eller hav en default i switch.
Avatar billede kennedk Nybegynder
12. september 2007 - 17:22 #3
ja, men da det er onsdag i dag, så burde den virke?
det gør ingen forskel hvis jeg sætter alle ugens dage på
Avatar billede arne_v Ekspert
12. september 2007 - 17:22 #4
Ioevrigt kan du vel lave det samme med brug af en ToString og en passende
Culture !?!?
Avatar billede arne_v Ekspert
12. september 2007 - 17:22 #5
Det er en compile time fejl - ikke en runtime fejl, saa det er ligegyldigt
hvilken dag det er.
Avatar billede kennedk Nybegynder
12. september 2007 - 17:23 #6
Jeg er ny til c sharp, og .net, så jeg er først i gang med at lære det , ved godt det er komplet dumt det jeg gør, men skal jo lige forstå hvordan det fungere
Avatar billede kennedk Nybegynder
12. september 2007 - 17:29 #7
men hvordan skal det løses med min switch
Avatar billede kennedk Nybegynder
12. september 2007 - 18:07 #8
Svaret er til andre:

switch (DateTime.Now.DayOfWeek)
        {
            case DayOfWeek.Wednesday:
                strDagNavn = "Onsdag";
                break;
            case DayOfWeek.Thursday:
                strDagNavn = "Torsdag";
                break;
            default:
                strDagNavn = "ved ikke hvad dag det er!!";
                break;
        }

Man skal åbenbart have en default på!
Avatar billede nielle Nybegynder
12. september 2007 - 18:20 #9
Ikke nødvendig vis. Dette ville også virke:

strDagNavn = "ved ikke hvad dag det er!!";
switch (DateTime.Now.DayOfWeek)
        {
            case DayOfWeek.Wednesday:
                strDagNavn = "Onsdag";
                break;
            case DayOfWeek.Thursday:
                strDagNavn = "Torsdag";
                break;
        }

Pointen er at compileren ikke vil tillade:

Label1.Text = strDagNavn;

hvis der ikke er 100% garanti for at strDagNavn har fået en værdi før den bruges. Det ville f.eks. ikke være tilfældet hvis du prøvede at køre dit program på en mandag, og derfor brokker compileren sig og vil ikke acceptere det.
Avatar billede nielle Nybegynder
22. september 2007 - 22:02 #10
Lukketid?
Avatar billede kennedk Nybegynder
25. september 2007 - 19:48 #11
ja undskyld :/
Avatar billede arne_v Ekspert
25. september 2007 - 19:57 #12
Fik du ikke svaret paa dit spoergsmaal ??
Avatar billede kennedk Nybegynder
29. september 2007 - 17:13 #13
Jo i skla selvølgelig have jeres point begge to, og fordi jeg har dummet mig grusomt for i begge 15 point

hvis i laver et svar begge to så skal i få jeres point
http://www.eksperten.dk/spm/798754
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester