Avatar billede spottie Nybegynder
28. maj 2006 - 10:39 Der er 4 kommentarer og
1 løsning

Vedr. GET og SET i klasser?

Goddag Derude Eksperter

Jeg ville høre om nogen kan forklare mig lidt om get og set i klasser?

Jeg har lagt mærke til at nogen gange så står get og set hver for sig men nogen gange står de i samme funktion?

Nogen der kan forklare hvad de gør og hvornår man skal have dem  adskilt og hvornår de skal være sammen?

Vh spottie
Avatar billede ladyhawke Novice
28. maj 2006 - 10:59 #1
get og set benyttes til egenskaber/properties, altså til at tilbyde adgang til bestemte egenskaber ved din klasse, til eksterne klasse (puplic).

Get betyder hent (læs)
Set betyder sæt (skriv)

Det vil sige at når get står alene er det fordi du kun kan læse denne værdi, ikke skrive til den. Det kunne f.eks. være en talværdi som du opdaterer centralt, men som flere klasser skal kunne læse.

Når set står alene kan du således kun skrive til variablen og det er en kende usædvanligt, men naturligvis muligt.

Du kan læse om det her også: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfaccessorspg.asp
Avatar billede nielle Nybegynder
28. maj 2006 - 11:00 #2
using System;
using System.Collections.Generic;
using System.Text;

namespace e712239
{
    class Program
    {
        static void Main(string[] args)
        {
            Demo demo = new Demo();

            // Der kan både skrives til (set) og læses fra (get) Property1
            demo.Property1 = 7;
            Console.WriteLine(demo.Property1);

            // Der kan kun skrives til Property2
            demo.Property2 = "Eksperten";
            // Console.WriteLine(demo.Property2); - vil fejle

            // Der kan kun læses fra Property3
            // demo.Property3 = 15; - vil fejle
            Console.WriteLine(demo.Property3);
        }
    }

    class Demo
    {
        private int _property1;
        public int Property1
        {
            get { return _property1; }
            set
            { _property1 = value; }
        }

        private string _property2;
        public string Property2
        {
            set { _property2 = value; }
        }

        public int Property3
        {
            get { return (_property2 != null) ? _property2.Length : -1; }
        }

        /*
        * Man kan ikke have get og set adskildt på denne
        * her måde - det vil compileren ikke være med til:

        private bool _property4;
        public bool Property4
        {
            get { return _property4; }
        }

        public bool Property4
        {
            set { _property4 = value; }
        }
        */
    }
}
Avatar billede spottie Nybegynder
30. maj 2006 - 19:59 #3
tak nielle...post svar for point

spottie
Avatar billede nielle Nybegynder
30. maj 2006 - 20:58 #4
Jeg deler da gerne med ladyhawke på denne her. :^)
Avatar billede ladyhawke Novice
30. maj 2006 - 21:07 #5
behold du bare pointene, det ser ud som om spottie var mest glad for dit 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