Manfred Skrevet 24. august 2005 Del Skrevet 24. august 2005 Nå sitter jeg her med et spørsmål jeg må ha svar på eksempel: public class klassenmin { private string stringenMin; public string StringenMin { get { return stringenMin; } set { this.stringenMin = value; } } } Hva pokker er egentlig vitsen med set-get-saken? Jeg har aldri forstått poenget. For min del er det bare mer å skrive Hvilken praktisk nytte har egentlig dette fremfor å sette den første variablen "stringenMin" public i stedet? Lenke til kommentar
j000rn Skrevet 24. august 2005 Del Skrevet 24. august 2005 private string _Password = null; public string Password { get { if( _Password == null ) _Password = Randomize(); return Decrypt(_Password); } set { if( value.length < 8 ) throw new exception("Dårlig passord!"); _Password = Encrypt(value); } } public DateTime Tiden { get { return DateTime.Now; } } Properties blir også automatisk synlige i VS.Net om man lager egne kontroller. Man kan sette at visse properties kun skal ha enten GET el. SET. Lenke til kommentar
Feynman Skrevet 24. august 2005 Del Skrevet 24. august 2005 Hva pokker er egentlig vitsen med set-get-saken? Jeg har aldri forstått poenget. For min del er det bare mer å skrive Hvilken praktisk nytte har egentlig dette fremfor å sette den første variablen "stringenMin" public i stedet? Jeg bruker properties pga. at jeg skriver klassevariabler på en egen måte, f.eks: m_Var eller Var_. Det ser penere ut å bruke et skikkelig property-navn. Det er forresten vanlig å sette klassevariablene til private hvis du vil beskytte dem. Da kan du bruke get/set som tilgangskontroll. Du kan også forsikre deg om at brukeren av klassen ikke setter inn ugyldige verdier. Lenke til kommentar
GeirGrusom Skrevet 30. august 2005 Del Skrevet 30. august 2005 Det har også noe med interne ting i .NET, for å skille mellom interne data, og data brukeren har tilgang til, utenom å bruke public (vanligvis vil du ikke gi fra deg fullstendig kontrollen over hvilke data som blir lagret i klassen) Property Viewer vil ikke fungere på klasser uten properties. forresten så bruker jeg internal og protected mer en private (som jeg sjeldent bruker) Lenke til kommentar
diZrupt0r Skrevet 9. september 2005 Del Skrevet 9. september 2005 en ting, hvordan får man Visual Studio (2005 beta2) til å automatisk lage disse get/set-metodene for en når en legger til attributter i en klasse? jeg har et stort antall domeneklasser i applikasjonen min hvor slike metoder er nødvendige. jeg kommer fra javaverdenen og holder på å lære meg .net/c#. Eclipse gjør jo denne automatiseringen enkelt og greit. Lenke til kommentar
GeirGrusom Skrevet 9. september 2005 Del Skrevet 9. september 2005 i C# gjør den ikke det, ihvertfall ikke i VS.NET 2003 Du kan jo bruke wizard hvis det tar så lang tid høyereklikk på klassen, Add->Property eller noe slikt Lenke til kommentar
diZrupt0r Skrevet 9. september 2005 Del Skrevet 9. september 2005 takk for svar, skal sjekke det ut. hva er fordelene med å bruke internal og protected istedet for private? jeg har brukt veldig mye private i java. Lenke til kommentar
GeirGrusom Skrevet 18. september 2005 Del Skrevet 18. september 2005 internal betyr at verdien synes kun innefor ditt prosjekt, dette er veldig hendig for større biblioteker med avanserte algoritmer, da får du direkte tilgang til variablene, men ikke de som bruker biblioteket ditt i et annet prosjekt. En protected variabel synes kun innefor den klassen, og alle klasser som inheriter den klassen, men er usynlig for objekter utenfor den klassen. private er internt for den ene klassen variablen er deklarert i. Lenke til kommentar
wolf5 Skrevet 13. oktober 2005 Del Skrevet 13. oktober 2005 en ting, hvordan får man Visual Studio (2005 beta2) til å automatisk lage disse get/set-metodene for en når en legger til attributter i en klasse? jeg har et stort antall domeneklasser i applikasjonen min hvor slike metoder er nødvendige. jeg kommer fra javaverdenen og holder på å lære meg .net/c#. Eclipse gjør jo denne automatiseringen enkelt og greit. 4815103[/snapback] Høyreklikk egenskap i klassen -> Refactoring -> Encapsulate field. Da mekker den getset for den variabelen du står på. Har ikke funnet ut hvordan ta mange i en engang, men slikt kan man lage makroer for. Lenke til kommentar
Zic0 Skrevet 29. desember 2005 Del Skrevet 29. desember 2005 (endret) I eksemplene jeg har lest har de f.eks droppet set på constructor men plutslig lagt det til på en funksjon. Hvorfor viser de to forskjellige ting? En ting til nå som vi er inne på det med klasser. Når er det man skal sette statisk funkskjon/property? Ser ut som det er mye letter å bare sette det, så man slipper å definere det inn til en variabel først, men det må jo være en tid du kan bruke det. For vanlige greia er der ikke uten grunn? Endret 29. desember 2005 av Zic0 Lenke til kommentar
Oracel Skrevet 20. februar 2006 Del Skrevet 20. februar 2006 ... En protected variabel synes kun innefor den klassen, og alle klasser som inheriter den klassen, men er usynlig for objekter utenfor den klassen. 4864412[/snapback] I Java innebærer protected at egenskapene er tilgjengelige innenfor samme package også, har C# en tilsvarende parallell, altså at egenskaper som er protected også er tilgjengelige innen samme namespace? Jeg vet ikke svaret i skrivende stund, men det kan være interessant å undersøke. 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å