Avatar billede M.hjespersen Juniormester
18. oktober 2016 - 12:20 Der er 7 kommentarer og
2 løsninger

Convert string til struct?

Hej.
Jeg er stadig meget nybegynder til at programmere, og er ved at skrive mit første program for sjov, for bare at prøve lidt forskelligt, men jeg står nu med et problem jeg ikke helt forstår hvordan jeg kan løse.

Jeg har lavet et program hvor man skal kunne registrere sig ved at skrive et navn, det navn der så bliver indtastet bliver skrevet på skærmen og skal derefter sendes til min struct "accounts" for at kunne registrere det nye navn.

problemet er, at det man indtaster selvfølelig er en string, og jeg ikke kan sende den string til mit struct, hvad kan jeg gøre for at få min string konverteret til noget jeg kan bruge i mit struct?

    struct Accounts
    {
        public accountinfo info;
        public accountRank rank;
        public string navn;
        public int skud;
        public int liv;
        public double penge;
}

    static void Register(Accounts i)
        {
   
            i.info = accountinfo.aktiv_ny;
            i.rank = accountRank.civil;
            i.liv = 3;
            i.penge = 500;
            i.skud = 0;

        }

                if (nytnavn != "")
                {

                    Console.WriteLine("\n");
                    Console.WriteLine("Du har registeret en ny konto
                    med navnet: " + nytnavn + "\n");
                 
                }
Avatar billede M.hjespersen Juniormester
18. oktober 2016 - 12:22 #1
Jeg har selvfølgelig bare taget klip fra koden. "nytnavn" er en string lavet tidligere. Jeg ville gerne kunne Accounts(nytnavn); hvilket jeg tydeligvis ikke kan, da det som sagt er en string.. nogle forslag ?
Avatar billede M.hjespersen Juniormester
18. oktober 2016 - 12:29 #2
Eller ikke Accounts(nytnavn); men register(nytnavn); selvfølelig..
Avatar billede arne_v Ekspert
18. oktober 2016 - 15:03 #3
Accounts nyacc = new Accounts { navn = nytnavn };

?
Avatar billede arne_v Ekspert
18. oktober 2016 - 15:04 #4
Andre kommentarer:
- jeg ville lave klassenavnet i ental
- jeg ville lade property navne starte med stort
- jeg ville bruge enten konsekvent dansk eller konsekvent engelsk i navnene
Avatar billede M.hjespersen Juniormester
18. oktober 2016 - 15:18 #5
Mange tak. Jeg fik det til at virke med :
Accounts nyacc = new Accounts();
                    nyacc.navn = nytnavn;
                    Register(ref nyacc);
                    Printplayer(nyacc);
Siden jeg af en eller anden grund ikke kunne skrive navnet som argument.
Avatar billede M.hjespersen Juniormester
18. oktober 2016 - 15:20 #6
Men jeg ville enligt gerne have "nytnavn" til at stå her:
Accounts "nytnavn" = new account();

Hvilket ville kræve jeg fik lavet min string om, så jeg ville kunne bruge det som navnet på min account, altså i stedet for "nyacc". er det muligt?
Avatar billede arne_v Ekspert
18. oktober 2016 - 15:33 #7
Accounts nyacc = new Accounts();
nyacc.navn = nytnavn;

og

Accounts nyacc = new Accounts { navn = nytnavn };

goer helt det samme.
Avatar billede arne_v Ekspert
18. oktober 2016 - 15:34 #8
Du kan ikke bruge en string som variabel navn.

Men du kan labe foelgende.

Dictionary<string,Accounts> accts = new Dictionary<string,Accounts>();
accts.Add(nytnavn, new Accounts { navn = nytnavn });
// brug accts[nytnavn]
Avatar billede M.hjespersen Juniormester
18. oktober 2016 - 15:39 #9
Præcis det jeg tænkte på. Mange tak for hjælpen (y)
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

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