11. juli 2006 - 01:28Der er
11 kommentarer og 1 løsning
The property or indexer cannot be used in this context
I denne kodestump: public const string GetServiceURL = Settings.ServiceURLKeyword;
får jeg følgende fejl, men ved ikke hvorfor:
Error 106 The property or indexer 'Settings.ServiceURLKeyword' cannot be used in this context because it lacks the get accessor.
Men Settings.ServiceURLKeyword HAR en get accessor: public static string ServiceURLKeyword { get { string serviceURLKeyword = config.AppSettings.Settings["ServiceURLKeyword"].Value; return serviceURLKeyword; } }
Det prøvede jeg at gøre, men så får jeg at vide, at "Commands.GetServiceURL cannot have instance field initializers in structs.". Jeg har en klasse med en lang række tekstkommandoer, som brugeren kan benytte. Disse kommandoer har jeg i en struct. Når jeg så skal finde ud af, hvilken kommando brugeren benytter, bruger jeg switch/case. Jeg ved ikke om det kan have indflydelse på fejlen?
Jeg bruger en struct, da en af mine kodehaj-venner anbefalede det til definitioner. Jeg skal jo egentligt bare have en samling af kommandoer, og de ændrer sig ikke og indeholder ikke noget logik.
Jeg prøvede med klasse + static string ServiceURLKeyword, men så brokker min switch/case sig: "A constant value is expected"
Hvis jeg forstår dig rigtigt, så er du ved at lave en kombination, der ikke kan lade sig gøre. Så er spørgsmålet så blot hvad vi skal i stedet for ... ;) Har du mere kode ... evt bare en stump for at vise princippet i hvad du gør?
Jeps. Brugeren taster en kommando ind. Denne kommando skal jo så udføres. Det gør jeg således: switch (userCommand) { case Commands.SetCity: SetCity(); break; case Commands.AddFriend: AddFriend(); break; etc. }
Brugte først en masse if-else statements, men det bliver hurtigt meget uoverskueligt.
Ja, så kan det jo nok ikke lade sig gøre med en switch. If-sætninger er en mulighed. Eller put nøgleord og funktion i en passende collection, og slå med brugerens kommando, og udfør den tilhørende funktion.
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.