HDSoftware Skrevet 5. mai 2009 Del Skrevet 5. mai 2009 Folkens. Det er mulig jeg har en skikkelig Brainfart akkurat nå men jeg får bare ikke til å prototype en datatype som baserer seg på strenger. Sett følgende: public enum Utvalg { a, b, c, d; } public Utvalg VelgUtvalg() { bla, bla, bla return Utvalg.a; } Dette er jo helt greit, men jeg vil ha tilmed en STRING og jeg kan jo ikke definere en ENUM som string. Tenkte jeg kunen definere en CLASS public static class Utvalg { public const string a = "Valg A"; public const string b = "Valg B"; } men dette gir jo ingen mening når jeg skal prototype. For da må jeg jo alikevel prototype med STRING og da er jeg jo like langt Noen som vet noe om dette... Lenke til kommentar
The Jackal Skrevet 5. mai 2009 Del Skrevet 5. mai 2009 Hva vil du egentlig oppnå? Hvis du tar ToString() på en enum, returnerer den jo navnet på enumen...i ditt tilfelle a, b, c og d. Lenke til kommentar
GeirGrusom Skrevet 5. mai 2009 Del Skrevet 5. mai 2009 Og du kan lese string tilbake til en enum ved å bruke Enum.Parse metoden. Lenke til kommentar
HDSoftware Skrevet 5. mai 2009 Forfatter Del Skrevet 5. mai 2009 Tror ikke dere svarte på spørsmålet mitt nå gutter :-) Når man lager en ENUM så kan man prototype en metode til å returnere eller ta imot akkurat denne enumen. Det betyr jo at man begrenser funksjonen til å ta imot et begrenset sett med verdier. Eksempelvis kan man jo prototype en funksjon til å ta imot ukedag enumen. Dermed vil ikek funksjonen kunne ta imot verdier utenfor dette området. Jeg skulle jo gjerne gjort noe tilsvarende for strenger. men dette er kansje ikke mulig. Kansje i C#4 ;-) Er jo mye nyttige greier som vistnok skal komem i C#4, som f.eks. omittable parameters - Ole gleder seg... Lenke til kommentar
The Jackal Skrevet 5. mai 2009 Del Skrevet 5. mai 2009 Du kan sette funksjonen til å returnere Enum, så kan den returnere alle typer enums. Eventuelt går det muligens med en generics funksjon for litt mer type safety. Tror ikke du får gjort noe med bare strenger. Lenke til kommentar
nilcat Skrevet 11. juni 2009 Del Skrevet 11. juni 2009 Når man lager en ENUM så kan man prototype en metode til å returnere eller ta imot akkurat denne enumen. Det betyr jo at man begrenser funksjonen til å ta imot et begrenset sett med verdier. Bare for å strø litt salt i såret - on en metode tar en enum som parameter, kan du sende inn et hvilket som helst tall (begrenset til den typen som faktisk ligger bak enumen din: int, byte osv.) til metoden uten at det feiler - du trenger bare en cast (on uke-enumen din heter UkeDag, så er (UkeDag)64 en lovlig verdi) Cato Lenke til kommentar
HDSoftware Skrevet 12. juni 2009 Forfatter Del Skrevet 12. juni 2009 Ja, det vet jeg, men hvis man kommer i en slik situasjon så er jo ting gjort feil. En prototype er der for en grunn og hvis man bruker CAST på denne måten for å omgå så mener jeg man gjør en feil i koden. Det fine med å kunne prototype med ENUM etter min mening er jo at man også får kodehjelp under veis. Jeg synes dette er kjempe bra. Visual Studio's intellicense gjør virkelig en god jobb med dette. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå