Avatar billede pixy Nybegynder
05. juni 2005 - 18:23 Der er 10 kommentarer og
1 løsning

Enum protection level

Jeg har et problem:

public abstract class Klasse1
    {
        public void doSomething()
        {
            normal no = new normal();

        }
    }


public class normal
    {
        public enum blah
        {
            nummer1, nummer2
        }
        public string yaahoo = "blah";
       
        public normal()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    }


Mit problem er at jeg ikke kan tilgå min enum "blah" fra Klasse1. Hvordan kan det være?
Avatar billede arne_v Ekspert
05. juni 2005 - 18:28 #1
du kan vel godt tilgå den med normal.blah.nummer1 etc. ?
Avatar billede arne_v Ekspert
05. juni 2005 - 18:31 #2
hvis du vil undgå et prefixe med normal så skal enum blah jo flyttes
ud fra normal of ud og være på yderste niveau som class Klasse1 og class normal
Avatar billede pixy Nybegynder
05. juni 2005 - 18:37 #3
Nej jeg kan ikke tilgå den med normal.blah.nummer1.
Og det vil også være forkert at flytte min enum ud af mit "normal" objekt.
Det er meningen at jeg skal have min enum i den instans jeg laver af objektet "normal". I ovenstående ekempel skal jeg i void doSomething kunne skrive :
no.blah.nummer1

Kan det mon være en bug i intellisensen i visual studio ?!
Avatar billede pixy Nybegynder
05. juni 2005 - 18:38 #4
hov. Jo ... jeg kan godt tilgå enumen ved at skrive normal.blah.nummer1, men jeg kan ikke nå enumen fra instansen af normal.
Avatar billede arne_v Ekspert
05. juni 2005 - 18:45 #5
jo det kan du godt

jeg tror at du tilgår den forkert

må vi se de linier som giver fejl ?
Avatar billede arne_v Ekspert
05. juni 2005 - 18:47 #6
husk at

public enum blah

er en type ikke et felt i normal !
Avatar billede pixy Nybegynder
05. juni 2005 - 18:48 #7
Det er ikke en compiler fejl. Det er når jeg har lavet:
normal no = new normal(); og herefter vil skrive:
no.blah    det kan jeg ikke få lov til. Derimod kan jeg godt se no.yaahoo.
Avatar billede pixy Nybegynder
05. juni 2005 - 18:50 #8
Altså jeg har lavet en work-a-round, men jeg synes det ville være pænest at tage enum værdien fra det rigtige sted.
Avatar billede pixy Nybegynder
05. juni 2005 - 18:54 #9
Nå. Nu skal det heller ikke gøres til at større problem end det er. Smid et svar Arne, så får du point =)
Avatar billede arne_v Ekspert
05. juni 2005 - 19:11 #10
no.blah giver jo ingen mening

public class normal
    {
        public enum blah
        {
            nummer1, nummer2
        }
        public blah enblah;
        public string yaahoo = "blah";
     
        public normal()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    }

og no.enblah giver mening

blah er en type

enblah er et felt
Avatar billede arne_v Ekspert
05. juni 2005 - 19:11 #11
svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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