Avatar billede thomasabcd Nybegynder
11. juli 2006 - 01:28 Der 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;
        }
}

Nogen forslag?
Avatar billede erikjacobsen Ekspert
11. juli 2006 - 09:05 #1
Prøv at fjerne 'const'
Avatar billede thomasabcd Nybegynder
11. juli 2006 - 09:26 #2
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?
Avatar billede innercitydk Nybegynder
11. juli 2006 - 11:18 #3
Prøv engang sådan her:

{
        get
        {
            return config.AppSettings.Settings["ServiceURLKeyword"].Value;
        }
}
Avatar billede erikjacobsen Ekspert
11. juli 2006 - 11:30 #4
Hvorfor struct?  Det her skulle gerne virke. Ellers sæt din initialisering i en constructor.

using System;

public class Test {

public string GetServiceURL=Settings.ServiceURLKeyword;

  public static void Main() {
    Test t = new Test();
    t.GetServiceURL = Settings.ServiceURLKeyword;
  }

}

public class Settings {

public static string ServiceURLKeyword
{
        get
        {
            string serviceURLKeyword = "SOMETHING";
            return serviceURLKeyword;
        }
}

}
Avatar billede erikjacobsen Ekspert
11. juli 2006 - 11:31 #5
Nå ja, du kan også droppe Main-metoden ;) Jeg fik vist lige prøvet 2 ting på samme tid. Så:

using System;

public class Test {

public string GetServiceURL=Settings.ServiceURLKeyword;

  public static void Main() {

  }

}

public class Settings {

public static string ServiceURLKeyword
{
        get
        {
            string serviceURLKeyword = "SOMETHING";
            return serviceURLKeyword;
        }
}

}
Avatar billede thomasabcd Nybegynder
11. juli 2006 - 11:51 #6
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"
Avatar billede erikjacobsen Ekspert
11. juli 2006 - 11:55 #7
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?
Avatar billede thomasabcd Nybegynder
11. juli 2006 - 13:53 #8
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.
Avatar billede erikjacobsen Ekspert
11. juli 2006 - 20:14 #9
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.
Avatar billede thomasabcd Nybegynder
16. februar 2008 - 10:14 #10
erikjakobsen smid et svar
Avatar billede erikjacobsen Ekspert
16. februar 2008 - 10:30 #11
Jeg samler slet ikke på point, tak.
Avatar billede thomasabcd Nybegynder
16. februar 2008 - 10:43 #12
ok. Tak for hjælpen under alle omstændigheder
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